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

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

时间: 2024-10-16 08:09:35

Struts2 动态结果和带参数的跳转的相关文章

ReportView动态加载带参数的RDCL文件

在vs里新建一个winform程序"ReportViewTest",在form1中添加一个reportView控件,from1的load事件如下: private void Form1_Load(object sender, EventArgs e) { DataSet ds = new DataSet(); try { ds = getDS(); } catch (Exception) { throw; } Microsoft.Reporting.WinForms.ReportDat

全局结果集,带参数的结果集和动态结果集(struts2)

全局结果集: 当许多action都有共同的结果时,如果每个package都存在一个相同结果,会使得struts.xml比较臃肿,所以使用全局的结果集.一个包内的全局结果集可以通过包的继承而被其它包使用. 这样做的好处是:通用的结果集不用多次配置,减少struts.xml的配置量. 带参数的结果集: 同jsp+servlet一样,struts2中也有转发和重定向,转发的过程在服务器端完成,这个过程共享一个值栈(value Stack),客户端并不知道页面跳转到了那个jsp页面,其地址栏中显示的是所

Struts2中带参数的结果集

1.在Struts2中带参数的结果集,即向结果集传参.struts2中有转发和重定向到某个视图,其中转发的过程在服务端完成,这个过程共享一个value stack(值栈),客户端并不知道页面跳转到了哪个jsp页面,其地址栏中显示的是所请求的action地址:在这个转发的过程中,参数值是共享的.其中重定向的话,服务器收到请求后,发现需要重定向,然后把需要重新访问的请求地址发给客户端,客户端重新发起请求,这个过程中,客户端知道自己访问的jsp页面的具体地址,其地址栏显示的是jsp页面的实际地址,并且

jquery mobile 带参数跳转收集(紧个人使用,测试完会补全)

//临时存储 var TempCache = { cache:function(value){ localStorage.setItem("EasyWayTempCache",value); }, getCache:function(){ return localStorage.getItem("EasyWayTempCache"); }, setItem:function(key,value){ localStorage.setItem(key,value); }

小程序跳转、请求、带参数请求小例子

wx.request(OBJECT) wx.request发起的是 HTTPS 请求.一个微信小程序,同时只能有5个网络请求连接. 具体参数说明参看微信小程序官方文档-发起请求. 例: //当页面加载时,请求后台数据,并赋值给前台显示 Page({ data:{ new_list:[] }, onLoad:function(){ var that = this; wx.request({ url:'http://wxcms.com/getList', header:{ 'content-type

Android Studio 使用Intent实现页面的跳转(带参数)

不管是在APP,还是在网站中,页面之间的跳转都是很常见的,本文主要讲一下在APP中,如何通过Intent实现页面的跳转. 不带参数: 写在MainActivity页面的代码: 1 Intent intent = new Intent(); 2 intent.setClass(MainActivity.this, LoginActivity.class);//从MainActivity页面跳转至LoginActivity页面 3 this.startActivity(intent); 带参数: 写

详解vue 路由跳转四种方式 (带参数)

详解vue 路由跳转四种方式 (带参数):https://www.jb51.net/article/160401.htm 1.  router-link ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1. 不带参数  <router-link :to="{name:'home'}"> <router-link :to="{path:'/home'}"> //name,path都行, 建议用name /

《小白滴滴系列》-angualr的带参数跳转

angualr跳转有两种方式(我知道的): 1.ui-sref:后面跟上状态名,有参数的话在状态名后面添加 <a ui-sref="TopicComments({ID:list.ID})">查看及回复</a><br /> 2.利用$state:参数分别是:状态的名字(注意是状态不是路由的名称),跳转的参数,跳转的时候刷新 $state.go('salaryDetail', { Time: paTime }, { reload: true }); 注意

vue基础——动态路由匹配(带参数的路由)

路由里面带参数,这种情况也是比较常见的,具体用法如下所示: 原文地址:https://www.cnblogs.com/chaoyueqi/p/10244143.html