2010-05-04 7 views
6
<action name="actionA" class="com.company.Someaction"> 
<result name="success" type="redirect-action"> 
    <param name="actionName">OtherActionparam> 
    <param name="paramA">${someParams}</param> 
    <param name="paramB">${someParams}</param> 
    <param name="aBoatLoadOfOtherParams">${aBoatLoadOfOtherParams}</param> 
</result> 
</action> 

In der obigen Aktionskarte, ich bin von SomeAction zu OtherAction umleiten. Ich habe Probleme, weil ich leider eine große Menge an Daten zwischen den beiden Aktionen weitergeben muss. IE7 wird GET-Anfragen nur erlauben, wie 2k zu sein, so dass es explodiert, wenn ich gerade über dieser Grenze bin, wenn die Antwort eine Get-Anfrage an die andere Aktion aufruft.Können Sie eine struts2-Aktionsumleitung mit POST anstelle von GET durchführen?

Kann ich diese Umleitung einstellen, damit ein POST zur anderen Aktion aufgerufen wird?

Antwort

6

Als docs heißt es:

Die einzige Möglichkeit, Daten zu übergeben [nach einer Umleitung] ist durch die Sitzung oder mit Web-Parametern (url name = Wert?) [Dh Abfrage-String für ein GET Anfrage]

Vielleicht ein Fall für action chaining? Ich bin mir nicht sicher, und es wird normalerweise nicht empfohlen, aber es scheint, dass dein Szenario ziemlich ungewöhnlich ist, also könnte es sich lohnen, einen Blick darauf zu werfen.

In diesem Fall machen wir nicht wirklich eine Umleitung, d. H. Wir gehen nicht zurück zum Client, sondern behalten alles im Server. Angeblich soll dann der komplette Interceptorstack erneut ausgeführt werden - und die geposteten Daten sollten sich auf die neue Aktion auswirken, man würde hoffen ...

+0

Danke für deine Hilfe. Ich werde Action Chaining versuchen. – Andy