0
포틀릿 간 통신 기능을 구현해야합니다. 기능은 다음과 같습니다.포틀릿 용 스프링 웹 플로우 리디렉션이 작동하지 않습니다.
1) 사용자가 "createStep1.jsp"에서 "다른 이름으로 저장"링크를 클릭합니다.
2) 아래에 언급 된 웹 플로 saveDraftStep1
을 호출하면 초안이 데이터베이스에 저장됩니다.
3) 사용자가 다른 포틀릿 myportlet
으로 이동하면 성공적으로 저장된 메시지가 여기에 표시됩니다.
어쨌든 웹 플로우가 externalRedirect
에 지정한 URL로 리디렉션되지 않습니다. 그것은 같은 페이지에 머물러 있습니다. 아래 코드는 다음과 같습니다 localhost:8080/myportlet
:
<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 예컨대와 구글의 URL을 대체합니다.
답장을 보내 주셔서 감사합니다. 오류는 없습니다. HTTP : // www가 나는 심지어 \t \t \t <최종 상태 ID = "만약 RedirectView"보기 = "externalRedirect <="만약 RedirectView "에 ="saveDraftStep1 "에 전환> 어떤"평가 "\t없이 다음 시도했다. google.com "/> – Dhaval
리디렉션이 아닌 경우 전환이 작동합니까? 아니면 externalRedirect가 아닌가? – dbreaux
예. 전환은 리디렉션없이 정상적으로 작동합니다. 지금 문제가 해결되었습니다. 아래 "handleExecutionOutcome"메서드를 덮어 써야했습니다. \t 공공 부울 handleExecutionOutcome (리다이렉트 FlowExecutionOutcome 결과 \t \t \t 시도 { \t \t \t \t \t \t \t \t 위해 response.sendRedirect (redirectUrl) \t \t \t \t 복귀는 true, // 결과가 수동으로 \t \t \t 처리} 캐치 (IOException이 e) { \t \t \t \t e.printStackTrace(); \t \t \t} \t \t \t ActionRequest를 요청 ActionResponse의 응답) { \t \t { – Dhaval