关于Struts2的动态URL和动态参数
2017-03-30 10:07
399 查看
两种方式的DynaAction都一样,如下:
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里:
最后跳转的页面的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里:
最终跳转的页面显示:happy---21--->r1.jsp 或者happy---21--->r2.jsp (即使在DynaAction中改变了age的值,但最终显示的age值还是和url上的值一样为21,不能实现动态改变的效果)
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 <!-- &是一个转义字符,相当于& --> 7 <result>${url}?name=${name}&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,不能实现动态改变的效果)
相关文章推荐
- 百度说:关于URL的建议:百度说动态URL中参数的数量尽量少
- 关于中文乱码问题的补充,主要正对URL参数有中文的问题。
- 解决multipart/form-data表单中传递参数问题(动态更改表单提交URL)
- Struts2 两个Action之间动态传参数
- 全局结果集,带参数的结果集和动态结果集(struts2)
- javascript写的关于静态页面获取URL传递参数的函数[原创]
- struts2 s:url 带参数的郁闷,正解
- 关于js深入理解:json作为函数参数 类似于jQuery的post函数,具有url,data ,和回调函数
- 关于HyperLink的NavigateUrl属性的链接地址参数设置
- Struts2 URL参数 s:if 判断应用
- 解决multipart/form-data表单中传递参数问题(动态更改表单提交URL)
- 关于jsp中,以url形式传递中文参数的乱码的问题
- 关于Struts2 Checkboxlist 多个参数时不能默认选中
- 转:关于GCC中同时使用动态和静态库链接的操作参数和解释
- 关于Flex获取浏览器URL及其参数的方法[转]
- 关于Monorail里Url中文参数的解决办法
- javascript写的关于静态页面获取URL传递参数的函数
- Struts2 URL 传参数 if 判断 浅谈
- 关于url参数中文乱码的问题 【asp.net C#】
- birt关于在url传递中文参数的解决方法