2012-03-30 11 views
0

Ich muss einige Parameter von Aktion A zu Aktion B übergeben, mit den Parametern in Aktion A. Die URL der Aktion B wird die Parameter der Aktion A gedruckt haben.Daher ist der Fluss:Struts 2 übergeben dynamische URL von Aktion zu Aktion

Aktion A

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

in Aktion B, die uRL ist

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

ich so etwas wie this

versucht haben,

Aber es hat nicht funktioniert.

Was kann ich tun, damit es funktioniert?

Antwort

0

Ihre Frage ist nicht sehr klar, aber immer noch, wenn Sie einige Parameter von Ihrer ersten Aktion zur zweiten Aktion mit redirectAction übergeben möchten, müssen Sie diese Parameter in Ihrer ersten Aktion (Aktion A) und während der Konfiguration Ihrer Sekunde erstellen Aktion (Aktion B) Sie müssen S2 sagen, dass Sie diese Parameter Aktion 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> 

Schlüsselbegriff ist hier die Verwendung von ${param1} passieren dynamische Parameter in der Konfiguration übergeben wollen, wird dies in dem Namen schauen, um Parameter param1 im Wertestapel und wird in Laufzeit durch seinen Wert ersetzt.

Stellen Sie sicher, dass Sie die Parameter, die Sie an Ihre Aktion B in Ihrer Aktion A mit ihren Getter und Setter übergeben möchten, so dass der S2 sie zur Laufzeit auswählen kann.

Nicht, wenn Sie statische Parameter in Ihrer Konfiguration übergeben wollen, alles was Sie brauchen, wie

<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> 

tun Nicht hier Parameter wie param1 übergeben werden und nicht ${param1}

+0

Dank Umesh, Ich habe versucht, aber das hat nicht wirklich funktioniert ... Hier ist der komplexe Teil ... Was ich hier versuche, ist tatsächlich, das Ergebnis von Aktion B ist eigentlich ein Link, der clicke wird d aus Aktion A Daher habe ich in Aktion A die folgende href-URL: AktionB? param1 = param1Val & param2 = param2Val & param3 = true & param4 = 0; Aber all diese Parameter: ** param1 = param1Val & param2 = param2Val & param3 = true & param4 = 0; ** wird von Aktion A gesetzt, bevor B. in zum Handeln vorbei Also, wenn ich die Set-Methoden in Aktion A verwende, werde ich in der Lage sein, sie in Action B zu bekommen? –

+0

Nein, diese Werte sind in Ihrer Aktion B nicht verfügbar, wenn Sie 'redirectAction' verwenden. Sie können sie entweder in der Sitzung speichern und in der Aktion B abrufen oder als Abfragestring an Aktion B übergeben und Werte von der Abfrage speichern Zeichenfolge in Aktion B. –

Verwandte Themen