Struts2 Redirect(十七)

本文介绍了Struts2框架中两种结果类型:redirect与dispatcher的区别及应用场景。redirect用于重定向到指定资源,地址栏会发生变化;dispatcher则用于将请求转发给其他资源。通过示例展示了如何配置这两种结果类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.redirect结果类型

redirect结果类型用来 “重定向”到指定的结果类型,该资源可以是jsp文件也可是所以Action,使用Redirect结果类型时,系统将调用HttpServletResponse的sendRediirect()方法,实现重定向带其他的文件。
redirect结果类型和dispactcher类型对应。dispatcher类型表示将请求转发给其他资源。而redirect是重定向到其他资源(参数会丢失,地址栏会变化。可以防止用户刷新浏览器重复提交表单的信息)。应用:
<result type="redirect">/testSuccess.jsp</result>


2.案例:
struts.xml

<package name="default" extends="struts-default">
<action name="showPerson" class="com.luob.action.ShowPerson">
<result name="success">/showPerson.jsp</result>
</action>
<!-- dispatcher resytype test -->
<action name="test" class="com.luob.action.DispatcherTest">
<result type="dispatcher">/testSuccess.jsp</result>
</action>

<!-- redirect resytype test -->
<action name="test2" class="com.luob.action.DispatcherTest">
<result type="redirect">/testSuccess.jsp</result>
</action>
</package>



action

package com.luob.action;

import com.opensymphony.xwork2.ActionSupport;

public class DispatcherTest extends ActionSupport {
private String personName;
private String personTelephone;
private String personAddress;



@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
public String getPersonName() {
return personName;
}
public void setPersonName(String personName) {
this.personName = personName;
}
public String getPersonTelephone() {
return personTelephone;
}
public void setPersonTelephone(String personTelephone) {
this.personTelephone = personTelephone;
}
public String getPersonAddress() {
return personAddress;
}
public void setPersonAddress(String personAddress) {
this.personAddress = personAddress;
}


}



regedit.jsp

<body>
您添加的联系人信息为:
<hr/>
<s:form action="test2" method="post" >
<s:textfield name="personName" label="姓名"/>
<s:textfield name="personTelephone" label="电话"/>
<s:textfield name="personAddress" label="地址"/>
<s:submit value="提交"/>
</s:form>
</body>



testSuccess.jsp

<body>
您添加的联系人信息为:
<hr/>
联系人姓名:<s:property value="personName"/>
联系人电话:<s:property value="personTelephone"/>
联系人地址:<s:property value="personAddress"/>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值