Struts2 result各种转发类型


重点:chain dispatcher redirect redirectAction stream

dispatcher:是最常用的结果类型,代表的是请求转发,也是struts2框架默认的类型,一般用于从action跳转到一个页面。将控制权转发给程序里的某个资源,不能是外部资源,若需要把控制权重定向到一个外部资源,应该使用redirect结果类型。
redirect:重定向要另一个资源,而不是转发,一般用于从action跳转到一个页面。
redirectAction: 代表重定向 它一般用于从action跳转另一个action。
stream:代表的是服务器端返回的是一个流,一般用于下载。
chain:相当于请求转发。它一般情况下用于从一个action跳转到另一个action。


下面是redirectAction 结果类型的例子,

如果重定向的action中同一个包下:

   /test下面的action跳转到/test下面的action
   <result type="redirectAction">methodTest1</result>
   或者
   <result type="redirectAction">
   <param name="actionName">methodTest1</param>
   <param name="namespace">/test</param>
    </result>

如果重定向的action在别的命名空间下:
不同的俩个package下面的action跳转

    /test下面的action跳转到/user下面的action
    <result type="redirectAction">
    <param name="actionName">mytest</param>
    <param name="namespace">/user</param>
    </result>

<struts>
    //全局
    <package name="base" extends="struts-default">
        <global-results>
            <result name="message">/WEB-INF/page/message.jsp</result>
        </global-results>
    </package>

    <package name="itcast" namespace="/control/employee" extends="base">    
        //重定向
        <action name="list" class="cn.itcast.action.HelloWorldAction" method="execute">
            <result name="success" type="redirect">/employeeAdd.jsp?username=${username}</result>
        </action>
        //默认走上面的全局
        <action name="manage" class="cn.itcast.action.HelloWorldAction" method="add">
        </action>

        1>如果没有为action指定class,默认是ActionSupport。
        2>如果没有为action指定method,默认执行action中的execute() 方法。
        3>如果没有指定result的name属性,默认值为success。
        <action name="redirect">
            <result type="redirect">/employeeAdd.jsp</result>
        </action>

        //重定向action 可以跳到下一个package包中的action
        <action name="redirectAction">
            <result type="redirectAction">
                <param name="actionName">xxx</param>
                <param name="namespace">/control/department/xdsfdsfds/435435</param>
            </result>
        </action>
        //显示原始文件内容
        <action name="plainText">
            <result type="plainText">
                <param name="location">/index.jsp</param>
                <param name="charSet">UTF-8</param><!-- 指定读取文件的编码 -->
            </result>
        </action>
    </package>

    <package name="other" namespace="/control/department" extends="base">
        <action name="manage" class="cn.itcast.action.HelloWorldAction" method="add">
        </action>
        <action name="xxx">
            <result>/WEB-INF/page/hello.jsp</result>
        </action>
    </package>
</struts>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值