Action的重定向-Struts2中防止表单重复提交的两种方式(二)

struts2中结果标签的<result>type属性不指定时的默认值是dispatcher,如果在注册时,使用了请求转发,那么当我们刷新页面时,就会引起表单的重复提交.而重定向则不会。

type的值设置为redirectAction,就是提交后从Action1跳转到另外一个Action2,此时浏览器中的地址是第二个Action2,在Action1中将记录添加到数据库中,然后在第二个Action2中将数据读取出来。以后每次刷新,那么只会执行Action2

含有表单的注册界面

<body>
  <form action="redirect">
   username:<input type="text" name="username"><br>
   password:<input type="password" name="password"><br>
   <input type="submit" value="submit">
   </form>
  </body>
Action1

package com.struts2;

import com.opensymphony.xwork2.ActionSupport;

public class Action1 extends ActionSupport
{
	private String username;
    private  String password;
	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;
	}
	@Override
	public String execute() throws Exception
	{
		
		return SUCCESS;
	}
}
Action2

package com.struts2;

import com.opensymphony.xwork2.ActionSupport;

public class Action2 extends ActionSupport
{
	private String username;
    private  String password;
    private  String 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;
	}

	public String getId()
	{
		return id;
	}
	public void setId(String id)
	{
		this.id = id;
	}
	public String execute() throws Exception
	{
		
		return SUCCESS;
	}
}
struts.xml的配置

 <action name="redirect" class="com.struts2.Action1" >
	    <result name="success" type="redirectAction">
	    <param name="actionName">action2</param>
	    <param name="username">${username}</param>
	    <param name="password">${password}</param>
	    <param name="id">201605</param>
	    </result>
	   </action>
	   <action name="action2" class="com.struts2.Action2">
	     <result name="success">/result.jsp</result>
	   </action>

从Action1到Action2传参可以使用param标签,而且传的参数不仅仅只能是Action1从表单得到的数据

结果页面

 <body>
   username:<s:property value="username"/><br>
   password:<s:property value="password"/><br>
         id:<s:property value="id"/>
  </body>







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值