首页 > 其他 > 详细

struts2 redirectAction配置

时间:2016-02-19 14:36:26      阅读:218      评论:0      收藏:0      [点我收藏+]

目前需要在一个action中根据不同的参数,引导跳转到不同的页面,虽然response可以直接sendRedirect,但是不怎么优雅,没有配置化直观、优雅。下面的代码仅为示例,亲测可用


public String validateUser(){
        if(1==1){
            return "toCommon";
        }else {
            return SUCCESS;
        }
    }


上面的代码中,validateUser是Action中的一个方法,事实上,validateUser在struts2的概念中就是一个action,如validateUser.action 只是在不同的系统中,配置时可以不填.action后缀


假设返回的SUCCESS是正常路径,"toCommon"是个特殊的路径,则struts.xml文件中需配置如下:

<package name="demo" namespace="/demo" extends="apply-base">
        <action name="*" method="{1}" class="com.xx.web.action.DemoAction">
            <result>/WEB-INF/vm/demo/{1}.vm</result>
            <result name="toCommon" type="redirectAction">
                <param name="namespace">/annotherDemo</param>
                <param name="actionName">toCommonMethodName</param>
                <param name="a.pId">${a.pId}</param>
                <param name="a.aId">${a.a}</param>
            </result>
        </action>
    </package>

一般情况下,每个package都有一个namespace,在跨package的跳转中,namespace非常重要

现在解释一下result=toCommon标签含义

type=redirectAction  表明这个result的type会跳转到其他action

namespace:/annotherDemo 跳转到其他action的namespace,它对应了package的namespace="/demo"

actionName: toCommonMethodName ,这个值其实就是对应的namespace下的方法名,比如方法 validateUser

a.pId:${a.pId} 这是跳转带的参数,它会把请求validateUser的参数中,参数名为a.pId的值赋到这里


网上一搜一大堆相关资料,很多是爬虫爬的,不清晰

参考地址:http://blog.csdn.net/javaimport/article/details/7239196

struts2 redirectAction配置

原文:http://lj3331.blog.51cto.com/5679179/1743230

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!