Перенаправление весеннего веб-потока не работает для портлетов

Мне нужно реализовать функцию связи между портлетами. Функционал такой:

1) пользователь нажимает ссылку «сохранить как» на «createStep1.jsp».

2) вызывается указанный ниже веб-флоу saveDraftStep1, черновик сохраняется в базе данных.

3) пользователь переходит к другому портлету myportlet, и там отображается успешно сохраненное сообщение.

Каким-то образом веб-поток не перенаправляется на URL-адрес, который я указываю в файле externalRedirect. Он остается на той же странице. Ниже приведен код:

<view-state id="createStep1">
   <transition on="saveDraftStep1" to="redirectView" >
         <evaluate expression="myAction.bindAndValidate" /> 
         <evaluate expression="myService.saveDraft(saveCriteria, externalContext.nativeRequest,externalContext.nativeResponse )" />
    </transition>
</view-state>
<end-state id="redirectView" view="externalRedirect:http://www.google.com" />

В идеале я хочу заменить URL-адрес Google на URL-адрес моего портлета, например: localhost:8080/myportlet.


person Dhaval    schedule 25.02.2013    source источник


Ответы (1)


Если любой из этих вызовов evaluate вернет ошибку, переход не будет выполнен. Возможно, это то, что происходит?

person dbreaux    schedule 26.02.2013
comment
Спасибо за ответ, но ошибок нет. я даже пробовал следующее без какой-либо оценки nofollow noreferrer">google.com /› - person Dhaval; 26.02.2013
comment
То есть переход работает, если не на редирект? Или если это не externalRedirect? - person dbreaux; 26.02.2013
comment
да. переход работает нормально без редиректа. Я исправил проблему сейчас. Мне пришлось перезаписать метод handleExecutionOutcome, как показано ниже. public boolean handleExecutionOutcome(результат FlowExecutionOutcome try { response.sendRedirect(redirectUrl); return true; // результат обрабатывается вручную } catch (IOException e) { e.printStackTrace(); } запрос ActionRequest, ответ ActionResponse) { { - person Dhaval; 08.03.2013