关于Struts2的动态URL和动态参数

两种方式的DynaAction都一样,如下:

 1 package com.xsl.action;
 2
 3 import java.util.Random;
 4
 5 import com.opensymphony.xwork2.ActionSupport;
 6
 7 public class DynaAction extends ActionSupport {
 8     private String url;
 9     private String name;
10     private int age;
11     public String test1(){
12         Random random = new Random();
13         int num = random.nextInt(2);
14         age = 22;
15         if(num == 0){
16             url = "r1.jsp";
17         }else{
18             url = "r2.jsp";
19         }
20         return SUCCESS;
21     }
22     public String getUrl() {
23         return url;
24     }
25     public void setUrl(String url) {
26         this.url = url;
27     }
28     public String getName() {
29         return name;
30     }
31     public void setName(String name) {
32         this.name = name;
33     }
34     public int getAge() {
35         return age;
36     }
37     public void setAge(int age) {
38         this.age = age;
39     }
40
41 }

r1.jsp里:${param.name}---${param.age}--->r1.jsp

r2.jsp里:${param.name}---${param.age}--->r2.jsp

第一种方式(推荐):

index.jsp里:<a href="dynaAction!test1?name=happy&age=21">测试动态URL和动态参数</a><br>

      或者:<a href="dynaAction!test1?name=happy">测试动态URL和动态参数</a><br>

struts.xml里:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
 3 <struts>
 4     <package name="xsl" namespace="/" extends="struts-default">
 5         <action name="dynaAction" class="com.xsl.action.DynaAction">
 6             <!-- &amp;是一个转义字符,相当于& -->
 7             <result>${url}?name=${name}&amp;age=${age}</result>
 8         </action>
 9     </package>
10 </struts>    

最后跳转的页面的url为:http://localhost:8080/struts2action/dynaAction!test1?name=happy&age=21

            或者:http://localhost:8080/struts2action/dynaAction!test1?name=happy

最终跳转的页面显示:happy---22--->r1.jsp 或者happy---22--->r2.jsp    (因为在DynaAction中改变了age的值,所以最终显示age为22,但是url上的值还是不变)

第二种方式:

index.jsp里只能写:<a href="dynaAction!test1?name=happy&age=21">测试动态URL和动态参数</a><br>

      不能写成这样,不然age显示不出来:<a href="dynaAction!test1?name=happy">测试动态URL和动态参数</a><br>

struts.xml里:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
 3 <struts>
 4     <package name="xsl" namespace="/" extends="struts-default">
 5         <action name="dynaAction" class="com.xsl.action.DynaAction">
 6             <result>
 7                 <param name="location">${url}</param>
 8                 <param name="name">${name}</param>
 9                 <param name="age">${age}</param>
10             </result>
11         </action>
12     </package>
13 </struts>    

最终跳转的页面显示:happy---21--->r1.jsp 或者happy---21--->r2.jsp     (即使在DynaAction中改变了age的值,但最终显示的age值还是和url上的值一样为21,不能实现动态改变的效果)

时间: 2025-01-31 04:09:02

关于Struts2的动态URL和动态参数的相关文章

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" &

Struts2 简单实例 / 工作原理 / 动态调用 / 多个配置文件

Struts2 动态方法调用 动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多. 1.指定method属性 2.感叹号方式 3.通配符方式 Demo结构图 web.xml标准配置 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee&qu

Django入门(六) &nbsp; 动态URL

多级url虽然可以在多个app的时候将各个应用进行归类.现在有这么一种情况,就是app01里面的views.py里面定义了大量的函数.这样的话我们势必要在app01的urls.py里也要根据函数的数量编辑绑定信息.一个函数一条绑定的信息的对应写下去.为了避免这种可怕的事情,我们就需要使用动态url来处理这种请求.所谓的动态url就是可以通过正则表达式匹配用户输入的url内容,将url当做参数传递给后端的python函数进行处理. 首先我们在app01应用的views.py文件里新建一个函数dyn

datagrid中动态url

function showDTbyid(id) { initTablListDP(); $('#tbwest').datagrid({ url: '/SuitAdd/ShowDTbyid/'+id  把url中抽出来 }); } function initTablListDP() { $('#tbwest').datagrid({ //url: '/SuitAdd/ShowDTbyid/'+id  title: '', width: 500, height: 320, fitColumns: t

flask学习之配置文件的加载和动态url的使用

七行代码实现一个flask app from flask import Flask app = Flask(__name__) @app.route('/') def helloworld(): return 'helloworld' if __name__ == '__main__': app.run() app.run()只适合调试,不适合生产环境使用,生产环境应该使用Gunicorn和uWSGI启动 配置管理 app.config是flask.config.Config类的实例,该类继承自

动态url、静态url和伪静态url的详细讲解

关于url的动态.静态.伪静态,很多站长朋友,尤其是新站长一直搞不清楚.网上的许多解释又语焉不详,下面子画SEO就作详细的讲解下. 我们说url的动态.静态.伪静态三种形式,其实从严格分类上来说,伪静态也是动态的一种,只是表现形式为静态. 动态页面的特征: 1.以ASP.PHP.JSP.ASP.net.Perl.或CGI等编程语言制作的: 2.不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页: 3.内容存在于数据库中,根据用户发出的不同请求,其提供个性化的网页内容:

Spring Security 动态url权限控制(三)

一.前言 本篇文章将讲述Spring Security 动态分配url权限,未登录权限控制,登录过后根据登录用户角色授予访问url权限 基本环境 spring-boot 2.1.8 mybatis-plus 2.2.0 mysql 数据库 maven项目 Spring Security入门学习可参考之前文章: SpringBoot集成Spring Security入门体验(一)https://blog.csdn.net/qq_38225558/article/details/101754743

【Unity3D】【NGUI】如何动态给EventDelegate添加参数

NGUI讨论群:333417608 NGUI版本:3.6.8 注意:参数必须是公共成员变量,不能是栈上的.或者私有的(就是临时在函数里面定义的或者是函数的参数都不行) using UnityEngine; using System.Collections; public class SZEventDelegateParams : MonoBehaviour { public int param = 2; void Start() { // 创建新的delegate,最后调用此(this)脚本的F

处理动态SQL语句的参数

原文:处理动态SQL语句的参数 经常对SQL进行开发,写动态的SQL语句,是少之不了的,但是在使用动态语句中,常是因为有动态的参数的出现.参考下面代码示例: 正因为有了标记1的动态条件代码,而让SQL语句需要变成动态的SQL语句.加上SQL语句中有参数的存在,因此需要使用标记2的设置整句SQL语句中所有参数所定义,哪些是INPUT,哪些是OUTPUT的. 标记3,执行SQL的sp_ExecuteSQL函数,它是分为三段,第1段传入动态SQL语句,第2段是传入参数定义,第3段参数匹配. 传入参数I