2012-03-30 69 views
0

我需要將Action A中的一些參數傳遞給Action B,Action A中的參數將打印出Action A的參數。因此流程如下:Struts 2將動態url從動作傳遞到動作

操作外

param1 = param1Val; 
param2 = param2Val; 
param3 = true; 
param4 = 0; 
的糾正措施B

,網址是

ActionB?param1=param1Val&param2=param2Val&param3=true&param4=0; 

我試圖像this

東西

但它沒有奏效。

我能做些什麼才能使它開始工作?

回答

0

你的問題並不十分清楚,但如果你想使用redirectAction將你的第一個動作的一些參數傳遞給第二個動作,你只需在第一個動作(動作A)中創建這些參數,同時配置第二個動作動作(動作B)你需要告訴您要S2這些參數傳遞到行動B.

<action name="a" class="ClassA"> 
     <!-- Redirect to another namespace --> 
     <result type="redirectAction"> 
      <param name="actionName">B</param> 
      <param name="param1">${param1}</param> 
      <param name="param2">${param2}</param> 
      // any other parameters 
     </result> 
    </action> 
這裏

關鍵概念是利用${param1}通過在配置動態參數,這將看在以參數命名param1在數值堆棧中,並將在運行時被其值替換。

確保你有這些參數,你想傳遞給你的動作B在你的動作A中有getter和setter,以便S2可以在運行時選擇它們。

若你想通過在配置靜態參數,所有你需要做的像

<action name="a" class="ClassA"> 
      <!-- Redirect to another namespace --> 
      <result type="redirectAction"> 
       <param name="actionName">B</param> 
       <param name="param1">param1</param> 
       <param name="param2">param2</param> 
       // any other parameters 
      </result> 
     </action> 

不在這裏參數被作爲param1過去了,沒有${param1}

+0

感謝Umesh製作, 我試着但它並沒有真正的工作... 這裏是複雜的部分... 我在這裏要做的是實際上,行動B的結果實際上是一個鏈接,正在clicke因此,在行動A中,我有這樣的href網址是這樣的: ActionB?param1 = param1Val&param2 = param2Val&param3 = true&param4 = 0; 但是,所有這些參數: **參數1 = param1Val&參數2 = param2Val&參數3 =真param4 = 0; ** 傳遞到行動B. 所以,如果我用行動一個set方法之前,從動作A的設置,將我能夠讓他們進入行動B? – 2012-03-30 02:38:23

+0

不,如果您使用'redirectAction',這些值將不會在您的操作B中可用,唯一的方法是將它們保存在會話中並在操作B中檢索它們,或者將它們作爲查詢字符串傳遞給操作B並使用查詢中的值行動中的字符串B. – 2012-03-30 02:41:27