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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM