struts2+redirectAction与token的区别
来源:互联网 发布:javascript精通 编辑:程序博客网 时间:2024/05/01 10:11
struts2中关于添加验证,我们一般添加完就转到另一个action,以免数据重复添加,struts2中常用的验证方法有两种redirectAction和token。对于这两种方法之间肯定是有区别的,下面我们来看看关于redirectAction和token 这两种方法在struts2的区别。
当使用type=“redirectAction” 提交到一个action并且需要传递一个参数时。
login.jsp
<form action="login2">
id:<input type="text" name="id"/><br/>
username:<input type="text" name="username"/><br/>
password:<input type="password" name="password"/><br/>
<input type="submit" value="submit">
</form>
login.action
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username=username
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
loginDto dto = new loginDto();
public String execute()
{
if(dto.getPassword().equals("") && dto.getUsername().equals(""))
{
return "input";
}
int id=dto.getId();
String username=dto.getUsername();
String password=dto.getPassword();
loginDao login=new loginDaoImpl();
System.out.println(id);
System.out.println(username);
System.out.println(password);
login.insertLogin(id, username, password);
return SUCCESS;
}
struts.xml
<action name="login2" class="com.struts2.login.login2">
<result name="success" type="redirectAction">
<param name="ActionName">login.action</param>//要转到action的名字
<param name="id">${id}</param>//带参数传递给下一个action
<param name="username">${username}</param>//带参数传递给下一个action
<param name="password">${password}</param>//带参数传递给下一个action
</result>
</action>
result.jsp
id:${requestScope.id }<br>
username:${requestScope.username }<br>
passwrod:${requestScope.password }<br>
方法都写完运行服务器,添加一条记录后在result.jsp页面就显示出刚刚添加的数据。而当你页面刷新时仍然是显示这条记录(等于刷新login.action)。
退一步在添加新的记录时,可以显示新添加的记录。而在token中就跟redirectAction有很大的区别,下面看下token的实现方式。
使用token时,代码如下:login.jsp
<s:form action="login1">
username: <s:textfield key="id"/>
username: <s:textfield key="username"/>
password<s:password key="password" />
<s:token></s:token>//这行代码必须添加,实现token隐藏域验证码
<s:submit/>
</s:form>loginToken.action
private int id;
private String username;
public int getId() {
return id;
}public void setId(int id) {
this.id = id;
}public String getUsername() {
return username;
}public void setUsername(String username) {
this.username = username;
}public String getPassword() {
return password;
}public void setPassword(String password) {
this.password = password;
}private String password;
loginDto dto = new loginDto();
public loginDto getModel() {
// TODO Auto-generated method stub
return dto;
}
public String execute() throws Exception {
// TODO Auto-generated method stub
int id=dto.getId();
String username=dto.getUsername();
String password=dto.getPassword();
loginDao login=new loginDaoImpl();
System.out.println(id);
System.out.println(username);
System.out.println(password);
login.insertLogin(id, username, password);
System.out.println(dto.getPassword());
System.out.println(dto.getUsername());
return SUCCESS;
}
struts.xml
<action name="login1" class="com.struts2.login.loginToken">
<result name="success">/result.jsp</result>
<result name="invalid.token">/token.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="token"></interceptor-ref>
</action>
result.jsp
<s:property value="id"></s:property>
<br>
<s:property value="username"></s:property>
<br>
<s:property value="password"></s:property>
<br>
token.jsp
不能重复添加 <br>
方法都写完运行服务器,添加一条记录后在result.jsp页面就显示出刚刚添加的数据。而当你页面刷新时就会跳转到token.jsp。
退一步在添加新的记录时,也是会跳转到token.jsp。因为token在添加数据时它会自动生成<input type="hidden" name="struts.token.name" value="struts.token" />
<input type="hidden" name="struts.token" value="IABWXQ7L7JFSCDWDMYB78PAKW9F4X47Y" />当你在刷新和重新添加数据时都会与struts.token中的value做比较。如果一样的就跳转到成功页面,不一样就跳转到token.jsp
- struts2+redirectAction与token的区别
- struts2 中chain、redirect、redirectaction的区别
- struts2 中chain、redirect、redirectaction的区别
- struts2 中chain、redirect、redirectaction的区别
- struts2 中chain、redirect、redirectaction的区别 .
- struts2 中chain、redirect、redirectaction的区别
- struts2 中chain、redirect、redirectAction的区别
- struts2 中chain、redirect、redirectaction的区别
- struts2 中chain、redirect、redirectaction的区别
- struts2 中chain、redirect、redirectaction的区别
- struts2 中chain、redirect、redirectaction的区别
- struts2中redirect和redirectAction的区别
- struts2 中chain、redirect、redirectaction的区别
- struts2 中chain、redirect、redirectaction的区别
- struts2 中chain、redirect、redirectaction的区别
- struts2中redirect和redirectAction的区别
- struts2的redirectAction类型
- struts2 redirect redirectAction chain区别
- android 广播接收者--BroadcastReceiver (实现短信窃听)
- apache常用配置
- 两个pdf文档合并成一个pdf文档
- 判断数据库中对象是否存在
- root 帐户无法登陆解决办法
- struts2+redirectAction与token的区别
- 防止表单重复提交的几种方法
- YUV RGB
- Android中自定义Dialog外形,去除黑底和白色边框
- linux 给用添加sudo 权限
- 应用监控系统框架应该包括哪些内容 ?
- mysql 5.0存储过程学习总结
- JavaScript闭包 取for循环i 【转】
- JDBC级联表的同时插入