我需要将一个 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 }
中文流.xml
<on-start>
<evaluate expression="userDetailsService.getRegistrationDetails(flowRequestContext)" result="flowScope.registrationDetails"/>
</on-start>
用户详情服务
public RegistrationDetails getRegistrationDetails(RequestContext requestContext){
HttpServletRequest httpRequest = (HttpServletRequest) requestContext.getExternalContext().getNativeRequest();
RegistrationDetails registrationDetails = (RegistrationDetails)httpRequest.getAttribute("registrationDetails");
return registrationDetails;
}
我不想将多个请求参数作为输入传递给我的流程。这是将 bean 传递给 SWF 的正确方法还是有其他更好的方法来实现相同的?