目前需要在一个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文件中需配置如下:


        
            /WEB-INF/vm/demo/{1}.vm
            
                /annotherDemo
                toCommonMethodName
                ${a.pId}
                ${a.a}
            
        
    

一般情况下,每个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