作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正尝试在我的一个流程中执行此操作:
<!-- 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 类型? (Here 是另一个相关主题)
这是我的 Controller :
@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 Controller 上使用 @SessionAttributes 来获取对象配置文件(名为“配置文件”),因此在我的流程中我只使用了 ExternalContext API 来检索该对象。
因此, Controller 保留了相同的代码,但在我的流程中,可以像这样使用 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)
.....
}
最佳答案
这里是你可以做的:
只保留profileId,不做必填
然后开始你的流程
<decision-state id="isProfileIdSet">
<if test="profileId != null" then="setProfile" else="errorState" />
</decision-state>
<action-state id="setProfile">/*get Profile with id and store it in flowScope */</action-state>
<end-state id="errorState"></end-state>
并添加 <on-start>
状态或<on-entry>
在你的第一个状态中
关于java - Spring Webflow : How to pass a bean from a controller to a flow?(使用输入映射),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19660925/
我是一名优秀的程序员,十分优秀!