2014-11-26 2 views
3

Я использую Struts 2.3.16.3. Я хочу, чтобы действие с 1 по веб-приложение передать параметры действия в веб-приложение 2. В struts.xml из 1 веб-приложение я определяю следующий результат:Struts2 передает параметры в действие в разных webapp

<result name="success" type="redirect"> 
    <param name="location">http://localhost:8080/Webapp2/index.action</param> 
    <param name="testParam">testValue</param> 
</result> 

Я ожидал мой браузер перенаправляет меня на эту веб-страницу (а страница в webapp2), если результат равен 'успех':

http://localhost:8080/Webapp2/index.action?testParam=testValue 

Однако мой браузер принимает меня:

http://localhost:8080/Webapp2/index.action 

полностью игнорируя параметр.

Если я изменить свой результат, чтобы все внутри месте PARAM то он работает, но вы можете видеть это становится очень неуклюжим с несколькими Params:

<result name="success" type="redirect"> 
    <param name="location">http://localhost:8080/Webapp2/index.action?testParam=${testValue}</param> 
</result> 

Это правильно перенаправляет мой браузер на URL:

http://localhost:8080/Webapp2/index.action?testParam=testValue 

Почему первый метод не работает?

+0

Не следует ли перенаправлять перенаправление вместо перенаправления? – mprabhat

+0

Я не думал, потому что redirectAction разрешает вам перенаправлять на другое действие в пределах одного и того же webpp. Моя просьба идет в другой webapp. – user1884155

+0

Проверьте ответ [здесь] (http://stackoverflow.com/questions/11006341/passing-parameters-in-url-while-redirecting-in-struts2) – mprabhat

ответ

1

Если location начинается с http:, https:, mailto:, file:, ftp: затем он используется в качестве конечного места для перенаправления с помощью response.sendRedirect(). Параметры в результате использования тега <param> в этом случае игнорируются.

Смежные вопросы