完整代碼: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>
