兩種方式的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,不能實現動態改變的效果)
