zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    python之线程queue
    python多线程之threading模块
    原型模式
    设计模式之工厂方法模式
    装饰模式
    策略模式
    工厂模式之简单工厂模式
    python之SocketServer
    python之socket网络编程
    下载好的vue项目如何在自己电脑环境上运行,步骤!!
  • 原文地址:https://www.cnblogs.com/bulrush/p/7732476.html
Copyright © 2011-2022 走看看