關於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,不能實現動態改變的效果)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM