Struts2 ---- result

<package name="helloWorld" extends="struts-default">
        
        <!-- 
            配置一个 action: 一个 struts2 的请求就是一个 action 
            name: 对应一个 struts2 的请求的名字(或对一个 servletPath, 但去除 / 和扩展名), 不包含扩展名
            class 的默认值为: com.opensymphony.xwork2.ActionSupport
            method 的默认值为: execute
            result: 结果. 
        -->
        <action name="zhuyemian-dao-struts" >
            <!--  
                result: 结果. 表示 action 方法执行后可能返回的一个结果. 所以一个 action 节点可能会有多个 result 子节点.
                多个 result 子节点使用 name 来区分
                name: 标识一个 result. 和 action 方法的返回值对应. 默认值为 success
                type: 表示结果的类型. 默认值为 dispatcher(转发到结果.)
            -->
            <result>/pages/input.jsp</result>
        </action>
        
        <action name="product-save" class="com.struts2.helloworld.Product"
            method="save">
            <result name="details">/pages/details.jsp</result>    
        </action>
    </package>

result中有两个属性。一个是name。是action方法的一个返回值。一个是type。表示响应的类型

 

struts.xml

<package name="actionContext" extends="struts-default">
        <action name="TestActionContext" class="com.struts2.action.TestActionContext">
        <result name="success">/fangwenWEB/test-actionContext.jsp</result>
        </action>
        <action name="TestAware" class="com.struts2.action.TestAware">
        <result name="success">/fangwenWEB/test-Aware.jsp</result>
        </action>
        <action name="TestResult" class="com.struts2.action.TestResult">
            <result name="a" type="dispatcher">/pages/A.jsp</result>
            <result name="b" type="redirect">/pages/B.jsp</result>

      <!-- 重定向到一个 Action --> <result name="c" type="redirectAction"> <param name="actionName">testAction</param> <param name="namespace">/hlw</param> </result>
      
      <!-- 转发到一个 Action --> <result name="d" type="chain"> <param name="actionName">testAction</param> <param name="namespace">/hlw</param> </result>
    
    <!-- 通过 redirect 的响应类型也可以便捷的实现 redirectAction 的功能! dispatcher不能到Action-->
            <result name="index" type="redirect">/atguigu/testAction.do</result> </action> </package> <package name="testPackage" namespace="/hlw" extends="struts-default"> <!-- <action name="testAction" class="com.struts2.action.TestAction"> <result>/pages/C.jsp</result> </action> --> <action name="testAction" class="com.struts2.action.TestAction"> <result>/pages/D.jsp</result> </action> </package>

Java代码:

package com.struts2.action;

public class TestResult {
    public int number;
    public void setNumber(int number) {
        this.number = number;
    }
    public String execute(){
        String result=null;
        //除以3余1  转发到A.jsp
        if(number%3==1){
            result = "a";
        }
        //除以3余2 重定向到B.JSP
        if(number %3 ==2){
            result="b";
        }
        //除以5余1转发到Action
        if(number % 5 ==1){
            result="c";
        }
        //除以5余2重定向到Action
        if(number % 5 ==2){
            result="d";
        }
        return result;
    }
}

 

    <action name="类名-方法名" class="全类名" method="方法名">
            <result name="方法中的返回值">页面地址</result>
        </action>

使用通配符

<action name="类名-*" class="com.struts2.action.TestAction" method="{1}">
            <result name="{1}-success">页面地址</result>
        </action>

 

posted @ 2017-10-25 21:28  陆伟  阅读(232)  评论(0编辑  收藏  举报