我正在尝试在我的一个流程上执行此操作:
<!-- Initial inputs -->
<input name="profileId" required="true" type="long" />
<input name="profile" required="true" type="com.myapp.model.Profile" />
冗余,我知道。仅用于调试目的
这里的问题是配置文件为空(com.myapp.model.Profile),由于所需的属性错误,向我的流处理程序抛出异常。但是,profileId (long) 不为空并且工作正常。
我的问题:
有没有可能该类型不能只是一个长类型?(这里是另一个相关的话题)
这是我的控制器:
@RequestMapping(value = "/mappingUrl", method = {RequestMethod.POST})
public String go2Flow(.... some parameters ...,
@ModelAttribute("profile") Profile profile,
ModelMap model) {
model.put("profile", profile);
model.put("profileId", profile.getId());
return "redirect:/app/myFlow";
}
编辑:
我解决了。由于我在我的 Spring MVC 控制器上为对象配置文件(名为“配置文件”)使用@SessionAttributes,所以在我的流程中,我只使用 ExternalContext API 来检索该对象。
因此,控制器保持相同的代码,但在我的流程中,可以像这样使用 ExternalContext API:
<on-start>
<evaluate expression="someService.serviceMethod(externalContext)" result="flowScope.outputVariable" />
</on-start>
然后在服务方法上:
@Override
public SomeObject serviceMethod(ExternalContext externalContext) {
Profile profile = (Profile) externalContext.getSessionMap().get("profile");
.....
(method logic)
.....
}