在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>