转发请注明出处

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. Labview中局部变量和全局变量

    局部变量的作用域是整个VI,它用于在单个VI中传输数据: 全局变量的作用域是整台计算机,它主要用于多个VI之间共享数据

  2. .net 配置ueditor

    添加引用如下: <script src="../Ueditor/ueditor.config.js" type="text/javascript"> ...

  3. ASP.NET的分页方法(二)

    第二讲主要使用到了常用的分页控件aspnetpager,这里对他就行一个简单的应用,具体大家可以到杨涛的博客上去寻找相关的DLL, 首先要先引用AspNetPager.dll,然后把这个DLL同时添加 ...

  4. HDU 5869 Different GCD Subarray Query (GCD种类预处理+树状数组维护)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5869 问你l~r之间的连续序列的gcd种类. 首先固定右端点,预处理gcd不同尽量靠右的位置(此时gc ...

  5. Firefox常用插件

    一.Web浏览使用插件 1.Adblock Plus广告拦截插件:能够自动拦截很多弹出广告,同时支持右键拦截指定信息 2.惠惠购物助手支持各大购物网站商品实时价格比较,非常棒的网站购物利器,插件下载地 ...

  6. ASP.NET中使用 Response.Write("<script>alert('****');</script>");后CSS界面发生变化的解决方法 (经验证)

    在后台使用Response.Write("<script>alert('Hello World');</script>);弹出alert窗口后发现网页的界面和原来CS ...

  7. 利用HTML5开发Android(6)---构建HTML5离线应用

    需要提供一个cache manifest文件,理出所有需要在离线状态下使用的资源例如 Manifest代码 CACHE MANIFEST #这是注释 images/sound-icon.png ima ...

  8. urlrewritingnet 域名http状态302 问题(转)

    UrlRewritingNet is an Url rewriting tool for ASP .Net and Elmahis a module for logging unhandled err ...

  9. NSNotificationCenter需要注意的几个问题

    NSNotificationCenter是iOS中常用的消息通知机制,不过在使用过程中有几点需要注意的问题. 直接贴Apple 的官方文档吧: A notification center delive ...

  10. 分布式文件系统HDFS体系

    系列文件列表: http://os.51cto.com/art/201306/399379.htm 1.介绍 hadoop文件系统(HDFS)是一个运行在普通的硬件之上的分布式文件系统,它和现有的分布 ...