gpt4 book ai didi

java - Spring MVC 与 Spring Webflow

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:23:15 25 4
gpt4 key购买 nike

我正在尝试将 Spring Webflow 与我的 Spring MVC 应用程序一起使用。我查看了 booking-mvc 示例并遵循了它,但是网络上的大多数示例都是使用 Tiles 完成的。我希望我不完全我的理解是错误的,Spring Webflow 可以与 Spring MVC 一起使用

我正在尝试使用 Spring MVC Controller 。但是当我进行提交/完成之类的转换时,似乎什么也没有发生。

这是我的流程 xml:

<view-state id="enterBookingDetails">
<transition on="submit" to="reviewBooking" />
</view-state>

<view-state id="reviewBooking">
<transition on="confirm" to="bookingConfirmed" />
<transition on="revise" to="enterBookingDetails" />
<transition on="cancel" to="bookingCancelled" />
</view-state>

我将 enterBookingDetails 和 reviewBooking 定义为 Controller :

@RequestMapping(value = "/enterBookingDetails", method = RequestMethod.GET)
public ModelAndView getPage(final HttpServletRequest request) {
ModelAndView modelView = new ModelAndView();
modelView.setViewName("pa");
return modelView;
}

@RequestMapping(value = "/reviewBooking", method = RequestMethod.GET)
public ModelAndView getPage2(final HttpServletRequest request) {

ModelAndView modelView = new ModelAndView();
modelView.setViewName("pb");
return modelView;
}

我的 Jsp 看起来像这样:

<form:form>
<input type="hidden" name="_flowExecutionKey" value="${flowExecutionKey}" />
<input type="hidden" name="_eventId" value="finished" />
<input type="submit" value="Submit" name="_eventId_finished" />
</form:form>

最后是我的配置:

<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="mvcViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
<property name="order" value="1" />

</bean>

<!-- Register all Web Flow definitions under /WEB-INF/flows/**/*-flow.xml -->
<webflow:flow-registry id="flowRegistry"
base-path="/WEB-INF/flows" flow-builder-services="flowBuilderServices">
<webflow:flow-location-pattern value="/**/*-flow.xml" />
</webflow:flow-registry>

<!-- Deploy a flow executor -->
<webflow:flow-executor id="flowExecutor" />

<!-- Configure flow builder services -->
<!-- Configure view service -->
<webflow:flow-builder-services id="flowBuilderServices"
view-factory-creator="mvcViewFactoryCreator" />
<!-- Web Flow components -->
<!-- Install flow handler (FlowHandlerAdapter) -->
<!-- It dispatches URL requests to flows -->
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">
<property name="flowExecutor" ref="flowExecutor" />
</bean>

<!-- Map Http request path to flows register in the registry -->
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
<property name="flowRegistry" ref="flowRegistry" />
<property name="order" value="0" />
</bean>
<bean id="mvcViewFactoryCreator"
class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
<property name="viewResolvers" ref="mvcViewResolver"/>
</bean>

最佳答案

Spring Webflow是建立在spring web mvc之上的,所以两者可以结合使用。

我了解到这种组合的问题是当配置错误时,唯一的症状是“没有任何反应”。我最终查看了 org.springframework.web 和 org.springframework.webflow 的调试日志,然后追踪到 spring 源代码以诊断配置问题。

spring 范式的目标是“约定优于配置”。我遇到的问题是,约定并不总是以熟悉它们的人可以轻松掌握的方式很好地定义。

我必须解决的最后一个“陷阱”是 spring webflow 的约定是将流 xml 文件放在与 jsp 相同的文件夹中。

在您的示例中,您似乎计划在同一 View 后面的 spring-webflow 和未修饰的 web mvc 之间切换。如果一切都已正确配置,对于给定的 uri,webflow 注册表中的任何内容都将胜过 UrlHandlerMapping(您的注释)中的任何内容。如果您没有意识到这一点,可能会造成混淆。

关于java - Spring MVC 与 Spring Webflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25878973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com