转发请注明出处

1.页面传值。

传值

前台

    <s:form action="login1">//action 名字 需要在structs配置
用户<s:textfield name="user.userName" type="text"/>//传对象
<s:textfield name="user.password" key="pass" />//传对象
<s:textfield name="password" key="pass" />//传值
<s:submit key="login" />
</s:form>

配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant> <package name="userManager" namespace="/" extends="struts-default"> <!-- //登录 -->
<action name="login1" class="action.LoginAction" method="login">
<result name="success">/loginuser.jsp</result>
<result name="loginout">/adetails.jsp</result>
</action>
<!-- //登出 -->
<action name="loginout" class="action.LoginAction" method="loginout">
<result name="success">/login.jsp</result>
<result name="loginout">/adetails.jsp</result>
</action>
</package>
</struts>

后台类

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import bean.User;
import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ /**
*
*/
private static final long serialVersionUID = 1L; private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
} //与前台页面name="password" 一致
public void setPassword(String password) {
this.password = password;
}
// 此处用于传对象
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user; //structs 把对应的值放到对象,在这里获取 user.userName,user.password 在这里把对象赋值,下面才可以调用

} public String login(){ HttpServletRequest request = ServletActionContext.getRequest();
System.out.println("111");
System.out.print(user);
request.getSession().setAttribute("username", user.getUserName());
request.getSession().setAttribute("user", user); System.out.println(user.getUserName());
return "success"; }
public String loginout(){
HttpServletRequest request = ServletActionContext.getRequest();
request.getSession().setAttribute("username", ""); /* HttpServletRequest request = ServletActionContext.getRequest();
request.getSession().setAttribute("username", user.getUserName());
或者 把Username 设置为空
*/ return "success"; } }

前台页面

<%@taglib prefix="s" uri="/struts-tags"%>

<body>
<s:a href="loginout.action">登出
</s:a> 用户名:<s:property value="user.userName" />
密码:<s:property value="user.password"/>
<s:property value="password"/> 值:
<br>
用struts标签: <s:property value="#session.username" />
<br>
用EL表达式:${session.username}
<br>
用java代码:<%=session.getAttribute("username")%>
<br> 对象
<br>
用struts标签: <s:property value="#session.user.userName" />
<br>
用EL表达式:${session.user.password}
<br>
用java代码:<%=session.getAttribute("user")%>

此处还用到过滤器

structs 2 学习总结(一)的更多相关文章

  1. SSH框架的简单学习—Structs学习

    一:struts部分 1.打开Myeclipse,创建一个web project,项目名称为SSHDemo. 2.在web的lib下粘贴struts2-blank.war解压后WEB-INF\lib下 ...

  2. Go xmas2020 学习笔记 12、Structs, Struct tags & JSON

    12-Structs, Struct tags & JSON. Struct. Struct Gotcha. Anonymous Struct Type. Make the zero valu ...

  3. Structs 2 session 学习

    后台获取 值类型  request.getSession().setAttribute("username", user.getUserName());  对象类型   reque ...

  4. [Go语言]从Docker源码学习Go——指针和Structs

    这两天在看reflect这个包在Docker中的使用时,遇到了各种问题,最后虽然知道怎么用了. 但是对于这块的原理还不是太懂,于是把"THE WAY TO GO"中关键的几章看了下 ...

  5. 推荐一篇关于java 学习的文章,感觉写的很不错

    ---恢复内容开始---    很多网友问我学习Java有没有什么捷径,我说"无他,唯手熟尔".但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛 ...

  6. SSH学习笔记

    Struts2登录模块处理流程: 浏览器发送请求http://localhost/appname/login.action,到web应用服务器: 容器接收到该请求,根据web.xml的配置,服务器将请 ...

  7. Java Web编程技术学习要点及方向

    学习编程技术要点及方向亮点: 传统学习编程技术落后,应跟著潮流,要对业务聚焦处理.要Jar, 不要War:以小为主,以简为宝,集堆而成.去繁取简 Spring Boot,明日之春(future of ...

  8. C#学习笔记

    1.C#中[],List,Array,ArrayList的区别 [] 是针对特定类型.固定长度的. List 是针对特定类型.任意长度的. Array 是针对任意类型.固定长度的. ArrayList ...

  9. Structs框架

    一.准备工作及实例 1.解压struts-2.1.6-all.zip(structs网上下载) apps目录:struts2自带的例子程序 docs目录:官方文档. lib 目录:存放所有jar文件. ...

随机推荐

  1. Spark生态系统BDAS

    目前,Spark已经发展成为包含众多子项目的大数据计算平台. 伯克利将Spark的整个生态系统称为伯克利数据分析栈(BDAS). 其核心框架是Spark,同时BDAS涵盖支持结构化数据SQL查询与分析 ...

  2. CSRF的攻击与防御(转)

    add by zhj:CSRF之所有发生,是因为http请求中会自动带上cookies,我的解决办法是:前端不要将数据放在cookie中,而是放在其它本地存储 (HTML5中称之为Web Storag ...

  3. cocos2d-x 2.2.5 安卓工程编译的问题

    原址:http://www.cocoachina.com/bbs/read.php?tid=217124 新的cocos2d-x 2.2.5 在使用Eclipse的安卓NDK 9 的编译器进行编译的时 ...

  4. POJ 2826 An Easy Problem?!

    An Easy Problem?! Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7837   Accepted: 1145 ...

  5. Java沙箱技术

    自从Java技术出现以来,有关Java平台的安全性及由Java技术发展所引发的新的安全性问题,引起了越来越多的关注.目前,Java已经大量应用在各个领域,研究Java的安全 性对于更好地使用Java具 ...

  6. esp8266烧写机智云固件方法

    转:http://blog.csdn.net/k7arm/article/details/51925941 =====================以下为我转载的文章================ ...

  7. find命令之exec

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command ...

  8. tryparse的用法,^0*[1-9]\d*$

    Entry entry = new Entry(); Int32 iParam; if(Int32.TryParse(entry.ajh,out iParam)) { /*如果转换成功就输出iPara ...

  9. HDU 5927 Auxiliary Set (dfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5927 题意: 给你一棵树,其中有一些'不重要'的点,要是这些'不重要'的点的子树中有两个重要的点的LC ...

  10. UVa 1620 Lazy Susan (找规律)

    题意:给 n 个数,每次可以把4个连续的数字翻转,问你能不能形成1-n的环状排列. 析:找一下奇偶性,写几个数试试,就会找到规律. 代码如下: #include <cstdio> #inc ...