struts1 action 配置多个forward 的作用

<action path="/profile/editProfile" type="com.openjawx.struts.XMLAction" validate="false">
            <forward name="default" path="/profile/jsp/editProfile.jsp"/>
            <forward name="home" path="/common/home.do"/>
            <forward name="timeout" path="/common/timeout.do?errorToDisplay=timeout"/>
            <forward name="sessionLocked" path="/common/sessionLockError.do"/>
            <forward name="login" path="/common/login.do"/>
 </action>

在struts-config.xml中<forward name="default" path="/profile/jsp/editProfile.jsp"/>默认的是转发处理

reques转发的特点:是使用同一个 request 跳转到其他路径。

response重定向的url地址改变,而转发的url地址是不变的。

重定向是从浏览器跳转的, 等于又重新发送了一个请求,因此使用的不是同一个request,所以他的 url 地址会改变。在这想变为重定向,需要使用另一个属性:redirect="true",设置成true,就变成重定向了。

错误页面是网站发生错误了要跳转到的页面,所以应该使用重定向来实例。让地址也变到错误页面的地址。
<forward name="error" path="/error.jsp" redirect="true"></forward>

定义全局forward:
使用标签<global-forwards>来定义全局forward:
<global-forwards>
<forward name="login" path="/login.jsp" redirect="true"/>
</global-forwards>

全局forward是都可以访问的,但是当需要使用forward时,struts自动按就近原则来选 择。当局部也有定义时,就按照局部的来转。

所以对以公共的内容,就可以定义到全局里,例如错误和登录处理等。

动态ActionForward:

静态ActionForward在运行期改不了,采用动态ActionForward,在运行期是可以 改动的。

String page = request.getParameter("page");

ActionForward af = new ActionForward("/page" + page + ".jsp?name=wenhq",true);
// true不使用转向,默认是false代表转向
return af;
静态的 ActionForward的url是不能加参数的,而使用动态的ActionForward,则可以加参数

猜你喜欢

转载自blog.csdn.net/qq_41648616/article/details/81210660
今日推荐