是否可以将spring webflow流应用于现有的MVC页面(由@Controller支持,而非纯jsp)?
例如我有@RequestMapping(/ start)@RequestMapping(/ buy)@RequestMapping(/ confirm)@RequestMapping(/ pay)我希望将它们放入flow / buy-> / cofirm-> /支付没有自定义导航的可能性 - 我可以使用webflow进行支付吗?
AFAIK是不可能的,但我想确定。
答案 0 :(得分:0)
Spring webflow和mvc一起工作 - 实际上webflow是建立在mvc之上的。
设置它的机制是另一回事。我仍在了解这一点,但我认为基于跟踪日志会发生这种情况:
在启动时,spring核心处理所有的hte注释和spring配置文件。除其他外,它为webflow注册表和使用@Controller注释的类分配URL映射。
bean org.springframework.webflow.mvc.servlet.FlowHandlerMapping处理webflow url的映射。您必须确保在通过其他方式(xml或@Controller bean)注册的映射之前解释它。
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
<property name="flowRegistry" ref="flowRegistry" />
<property name="order" value="-1" />
</bean>
在运行时,URL从servlet引擎传递到mvc映射解析程序。 mvc引擎的这一部分扫描所有已注册的资源,并返回它找到匹配的第一个资源。
给定一个flowregistry bean:
<webflow:flow-registry id="flowRegistry"
flow-builder-services="flowBuilderServices"
base-path="/WEB-INF/pages/">
<webflow:flow-location path="login.xml" />
</webflow:flow-registry>
定义了一个控制器bean:
@Controller
@RequestMapping("/login")
public class LoginController {
...
}
在Web流程中找到的映射优先于控制器中的映射(假设其他所有内容都已正确配置)。
我发现设置webflow项目的约定没有特别详细记录。为了获得一个有效的webflow项目,我最终提取了大约6&#34;准备运行的配置&#34;教程演示。一旦我开始运作,一切都有意义。
配置问题的唯一症状是找不到映射,因此您将在很大程度上依赖于org.springframework.web和org.springframework.webflow的调试日志记录,以找出找不到映射的原因。在我&#34;得到&#34;之前,我最终调试了弹簧代码。它,我仍然在努力解决一些概念。
我希望这会有所帮助。