2012-03-30 5 views
0

Мне нужно передать некоторые параметры от действия A к действию B с параметрами в действии A. В URL-адресе Action B будут напечатаны параметры Action A. Поэтому поток:Struts 2 передать динамический url от действия к действию

Действие

param1 = param1Val; 
param2 = param2Val; 
param3 = true; 
param4 = 0; 

в действии в, гиперссылка является

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

Я пытался что-то вроде this

Но это не сработало.

Что можно сделать, чтобы начать работу?

ответ

0

Ваш вопрос не очень ясен, но если вы хотите передать некоторые параметры от вашего первого действия ко второму действию, используя redirectAction, все, что вам нужно создать в первом действии (действие A) и при настройке второго Действие (Action 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, с помощью получателей и сеттеров, чтобы 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 на самом деле является ссылкой, которая является кликом d из действия A Поэтому в действии A у меня есть этот URL-адрес href, который выглядит следующим образом: ActionB? param1 = param1Val & param2 = param2Val & param3 = true & param4 = 0; Но все эти параметры: ** param1 = param1Val & param2 = param2Val & param3 = истина и param4 = 0; ** устанавливаются из действий A перед передачей в к действию B. Так что, если я использую методы приводится в действие А, Я быть в состоянии получить их в действии B? –

+0

нет, эти значения не будут доступны в вашем действии B, если вы используете 'redirectAction', только способ либо сохранить их в сеансе, либо получить их в вашем действии B, либо передать их в качестве строки запроса в действие B и fetes значения из запроса строка в действии B. –