您的位置:首页 > 编程语言 > Java开发

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

2017-03-30 10:07 399 查看
两种方式的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             <!-- &是一个转义字符,相当于& -->
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,不能实现动态改变的效果)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: