structs 2 学习总结(一)
转发请注明出处
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 学习总结(一)的更多相关文章
- SSH框架的简单学习—Structs学习
一:struts部分 1.打开Myeclipse,创建一个web project,项目名称为SSHDemo. 2.在web的lib下粘贴struts2-blank.war解压后WEB-INF\lib下 ...
- Go xmas2020 学习笔记 12、Structs, Struct tags & JSON
12-Structs, Struct tags & JSON. Struct. Struct Gotcha. Anonymous Struct Type. Make the zero valu ...
- Structs 2 session 学习
后台获取 值类型 request.getSession().setAttribute("username", user.getUserName()); 对象类型 reque ...
- [Go语言]从Docker源码学习Go——指针和Structs
这两天在看reflect这个包在Docker中的使用时,遇到了各种问题,最后虽然知道怎么用了. 但是对于这块的原理还不是太懂,于是把"THE WAY TO GO"中关键的几章看了下 ...
- 推荐一篇关于java 学习的文章,感觉写的很不错
---恢复内容开始--- 很多网友问我学习Java有没有什么捷径,我说"无他,唯手熟尔".但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛 ...
- SSH学习笔记
Struts2登录模块处理流程: 浏览器发送请求http://localhost/appname/login.action,到web应用服务器: 容器接收到该请求,根据web.xml的配置,服务器将请 ...
- Java Web编程技术学习要点及方向
学习编程技术要点及方向亮点: 传统学习编程技术落后,应跟著潮流,要对业务聚焦处理.要Jar, 不要War:以小为主,以简为宝,集堆而成.去繁取简 Spring Boot,明日之春(future of ...
- C#学习笔记
1.C#中[],List,Array,ArrayList的区别 [] 是针对特定类型.固定长度的. List 是针对特定类型.任意长度的. Array 是针对任意类型.固定长度的. ArrayList ...
- Structs框架
一.准备工作及实例 1.解压struts-2.1.6-all.zip(structs网上下载) apps目录:struts2自带的例子程序 docs目录:官方文档. lib 目录:存放所有jar文件. ...
随机推荐
- <转载>linux下内存泄露查找、BUG调试
先收藏着,抽空好好看看:http://www.ibm.com/developerworks/cn/linux/l-pow-debug/ 简介 调试程序有很多方法,例如向屏幕上打印消息,使用调试器,或者 ...
- hdoj 5375 Gray Code
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 编码规则:tmp = XOR(gr[i],gr[i-1]); 算是找规律的题目吧,考虑?前后字符 ...
- Ajax.ActionLink与Ajax.BeginForm使用场所的思考
Ajax.ActionLink使用在提交参数明确的情况下,如: Ajax.ActionLink("加入购物车", "AddToCart", "Cart ...
- python 缩进问题
200 ? "200px" : this.width)!important;} --> 介绍 在python中认为规定4个空格缩进,缩进的代码可以理解成一个块,但是使用缩进也 ...
- Oracle的体系结构
前言 这个章节主要想说的是Oracle的体系结构,这个也是理论强些.还有一些比较理论的知识点(比如表空间啊),就暂时先不写了,下一章节开始进入Oracle的操作阶段,比如表的查询啊.插入以及重点是和S ...
- Use jQuery to hide a DIV when the user clicks outside of it
http://stackoverflow.com/questions/1403615/use-jquery-to-hide-a-div-when-the-user-clicks-outside-of- ...
- 转载:页面加载swf插件:swfobject
转自:http://www.cnblogs.com/analyzer/articles/1299592.html 我一直都在用SWFObject 插入flash,好处多多,代码简洁,不会出现微软的“单 ...
- sqlserver:同一数据库内负责表结构。
select * into 新表 from 旧表 where 1=2; ## where 表示要携带的数据,随便写个恒不等式就可以只复制表结构不携带数据.
- 4.接口隔离原则(Interface Segregation Principle)
1.定义 客户端不应该依赖它不需要的接口: 一个类对另一个类的依赖应该建立在最小的接口上. 2.定义解读 定义包含三层含义: 一个类对另一个类的依赖应该建立在最小的接口上: 一个接口代表一个角色,不应 ...
- SQL Server 批量插入数据的两种方法(转)
此文原创自CSDN TJVictor专栏:http://blog.csdn.net/tjvictor/archive/2009/07/18/4360030.aspx 在SQL Server 中插入一条 ...