Struts2学习笔记(三):result配置的各项视图转发类型

Struts 1:

<action path="/user" type="org.sunny.user.action.UserAction" ...>
    <forward name="index">/index.jsp</forward>
    <forward name="redirect" redirect="true">/index.jsp</forward>
</action>

  struts 1中将forward的属性redirect的值设置为true就可以进行网页的重定向。

Struts 2:

  struts 2中的result配置类似于struts 1中的forward,但是struts 2中提供了多种结果类型,常用的类型有:dispatcher(默认值)、redirect、redirectAction以及plainText。

  在result中还可以使用${属性名}表达式访问action中的属性,表达式里的属性名对应action的属性。

<result type="redirect">/index.jsp?id=${id}</result>

 

  type设置为redirectAction可以重定向到另一个action。

  重定向到同一个包中action

<package name="sunny" namespace="/" extends="struts-default">
        <action name="user_*" class="org.sunny.user.action.UserAction" method="{1}">
            <result name="success">${pageContext.request.contextPath}/WEB-INF/jsp/success.jsp</result>
            <result type="redirectAction" name="indexAction">index</result>
        </action>
        
        <action name="index" class="org.sunny.index.action.IndexAction" method="execute">
            <result name="index">${pageContext.request.contextPath}/index.jsp</result>
        </action>
</package>

  重定向到另一个包中的action

  包名相同,命名空间不同的情况:

<package name="sunny" namespace="/" extends="struts-default">
        <action name="user_*" class="org.sunny.user.action.UserAction" method="{1}">
            <result name="success">${pageContext.request.contextPath}/WEB-INF/jsp/success.jsp</result>
            <result name="indexAction" type="redirectAction">
                <param name="namespace">/shine</param>
                <param name="actionName">index</param>
            </result>
        </action>
</package>
    
<package name="shine" namespace="/" extends="struts-default">
        <action name="index" class="org.sunny.index.action.IndexAction" method="execute">
            <result name="index">${pageContext.request.contextPath}/WEB-INF/jsp/index.html</result>
        </action>
</package>

  包名和命名空间都不同的情况:

<package name="sunny" namespace="/" extends="struts-default">
        <action name="user_*" class="org.sunny.user.action.UserAction" method="{1}">
            <result name="success">${pageContext.request.contextPath}/WEB-INF/jsp/success.jsp</result>
            <result name="indexAction" type="redirectAction">
                <param name="namespace">/tbc</param>
                <param name="actionName">index</param>
            </result>
        </action>
</package>
    
<package name="shine" namespace="/tbc" extends="struts-default">
        <action name="index" class="org.sunny.index.action.IndexAction" method="execute">
            <result name="index">${pageContext.request.contextPath}/WEB-INF/jsp/index.html</result>
        </action>
</package>

 

posted @ 2016-02-25 17:47  睡猪遇上狼  阅读(296)  评论(0编辑  收藏  举报