BeanオブジェクトをMVCからwebFlowに渡す必要があります。現在、私はこの方法でそれを達成しています:
- Beanオブジェクトをリクエスト属性としてコントローラに保存します。
- フローに転送します。
フローの開始時にflowRequestContextからオブジェクトにアクセスし、flowScopeに設定します。
@RequestMapping(value = "/ProcessUser", method=RequestMethod.POST) public String processForm(LoginUser loginUser, HttpServletRequest request){ .... request.setAttribute("registrationDetails", registrationDetails); return "forward:/chineseFlow"; //Call to flow }
ChineseFlow.xml
<on-start>
<evaluate expression="userDetailsService.getRegistrationDetails(flowRequestContext)" result="flowScope.registrationDetails"/>
</on-start>
UserDetailsService
public RegistrationDetails getRegistrationDetails(RequestContext requestContext){
HttpServletRequest httpRequest = (HttpServletRequest) requestContext.getExternalContext().getNativeRequest();
RegistrationDetails registrationDetails = (RegistrationDetails)httpRequest.getAttribute("registrationDetails");
return registrationDetails;
}
フローへの入力として複数のリクエストパラメータを渡したくありません。これは、BeanをSWFに渡す正しい方法ですか、それとも同じことを実現する他のより良い方法がありますか?