• Struts2 动态结果和带参数的跳转


    完整代码:Struts16ActionResultsDemo.rar

    1.动态结果。

       有时我们需要在Action里取得我个要转跳的页面

    看一下我们的struts.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
        <!-- Add packages here -->
         <constant name="struts.devMode" value="true" />
        <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
        
        <!-- Add packages here -->       
        
        <package name="testdefalult" namespace="/abc" extends="struts-default">                             
           <action name="mya" class="com.pengli.struts.parampack.MyActionOne"  method="Def">
                   <result>${value}</result>
           </action>
        </package>
        
        
    </struts>

    很简单只是把result里用${value}取代了具体和页面,那看一下我们的

    action是怎么写的

    package com.pengli.struts.parampack;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class MyActionOne extends ActionSupport{    
        private String strType;
        private String myValue;
        public String Def()
        {
            if(strType!=null&&strType.equals("a"))
            {        
                setValue("/NewJsp.jsp");
                            
            }
            else
            {
                setValue("/Errors.jsp");            
            }
            return SUCCESS;    
        }
        public String getType() {
            return strType;
        }
        public void setType(String type) {
            this.strType = type;
        }
        public String getValue() {
            return myValue;
        }
        public void setValue(String value) {
            this.myValue = value;
        }
    }

    这是根据type给value赋值,转跳到相应的页面上

    http://localhost:8080/Struts16ActionResultsDemo/abc/mya?type=a

    正常页面

    赋一个别的值

    2.带参数的跳转

    我们知道redirect形式的转跳是共享值栈的,我们上边说的是&{value}取的是一个整体页面,我们也可以用它来保存和提取参数

    这里我们是基于1修改的代码

    看一下structs.xml

           <action name="myb" class="com.pengli.struts.parampack.MyActionOne"  method="Defb">
                   <result>/NewJsp.jsp?v=${type}</result>
           </action>

    再看一下Action

    public String Defb()
        {
            if(strType!=null)
            {
                myValue=String.valueOf(Integer.parseInt(strType)+1);
            }
            return SUCCESS;
        }

    再看一下jsp页面,因为xml里是直接轩跳的,没有经过Action

    所以NewJsp.jsp?v=${type}取v的值时要这么取

      <body>
        This is my JSP page. <br>
        parameters v <s:property value="#parameters.v"/>
        <s:debug></s:debug>
      </body>

     完整代码:Struts16ActionResultsDemo.rar

  • 相关阅读:
    IOS和Android支持的音频编解码
    IOS XIB Cell自适应高度实现
    IOS竖屏应用单个页面横屏的解决办法
    FMDB读取Datetime类型值为1970的问题
    一些IOS开发中的小技巧
    IOS的一些小技巧
    Static块详解
    Hadoop学习笔记3---安装并运行Hadoop
    Hadoop学习笔记2---配置详解
    同一账户在同一时间 只能登陆一次
  • 原文地址:https://www.cnblogs.com/li-peng/p/3791305.html
Copyright © 2020-2023  润新知