2012-03-30 38 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

相关问题