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

正常页面

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

赋一个别的值

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

 

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

你可能感兴趣的:(struts2)