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> 

Nella suddetta mappa azione, sto reindirizzando da SomeAction a OtherAction. Sto avendo problemi, perché purtroppo ho bisogno di passare una grande quantità di dati tra le due azioni. IE7 consentirà solo alle richieste GET di essere come 2k, quindi la sua esplosione quando sono appena oltre quel limite quando la risposta chiama una richiesta di ottenere l'altra azione.Puoi eseguire un reindirizzamento delle azioni di struts2 usando POST anziché GET?

È possibile impostare questo reindirizzamento, per finire con un POST chiamato all'altra azione?

risposta

6

quanto docs afferma:

L'unico modo per passare i dati [dopo un reindirizzamento] è attraverso la sessione o con i parametri Web (URL nome = valore?) [Cioè, stringa di query per un GET richiesta]

Forse un caso per action chaining? Non sono sicuro, e di solito non è consigliato, ma sembra che lo scenario sia piuttosto insolito, quindi potrebbe essere utile dare un'occhiata.

In questo caso, non stiamo davvero effettuando un reindirizzamento, cioè non stiamo tornando al client, ma mantenendo tutto all'interno del server. Presumibilmente, quindi, lo stack dell'intercettore completo viene eseguito di nuovo e i dati inviati dovrebbero influire sulla nuova azione, ci si aspetterebbe ...

+0

Grazie per il vostro aiuto. Ho intenzione di provare il concatenamento d'azione. – Andy