Можете ли вы выполнить перенаправление действий struts2, используя POST вместо GET? - PullRequest
6 голосов
/ 05 мая 2010
<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>

На приведенной выше карте действий я перенаправляю с SomeAction на OtherAction. У меня проблемы, потому что, к сожалению, мне нужно передать большое количество данных между двумя действиями. IE7 допускает, что GET-запросы будут иметь размер, равный 2k, поэтому он взрывается, когда я просто превышаю этот предел, когда ответ вызывает запрос get для другого действия.

Можно ли мне установить это перенаправление, чтобы в итоге POST вызывался для другого действия?

1 Ответ

6 голосов
/ 05 мая 2010

Как указано в документах :

Единственный способ передачи данных [после перенаправления] - через сеанс или с веб-параметрами (url? name = value) [т.е. строка запроса для запроса GET]

Возможно, дело в цепочке действий ? Я не уверен, и это обычно не рекомендуется, но кажется, что ваш сценарий довольно необычен, поэтому стоит взглянуть.

В этом случае мы на самом деле не делаем перенаправление, то есть мы не возвращаемся к клиенту, а сохраняем все внутри сервера. Предположительно, тогда полный стек перехватчиков выполняется снова - и размещенные данные должны повлиять на новое действие, можно надеяться ...

...