[英]MVC Controller and Web Flow Controller - Request handling priorities
I'm working with integration Spring Web Flow into Spring MVC web application. 我正在将Spring Web Flow集成到Spring MVC Web应用程序中。
I mapped Spring DispatcherServlet
to *.html
like below. 我将Spring
DispatcherServlet
映射到*.html
如下所示。
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
I have registered simple flow ( /WEB-INF/flows/simple/simple-flow.xml
, /WEB-INF/flows/simple/simple.jsp
) that gets simple
id according to configuration. 我已经注册流程简单(
/WEB-INF/flows/simple/simple-flow.xml
, /WEB-INF/flows/simple/simple.jsp
)即得到simple
根据配置ID。
<webflow:flow-registry id="flowRegistry" base-path="/WEB-INF/flows">
<webflow:flow-location-pattern value="/**/*-flow.xml" />
</webflow:flow-registry>
I mapped /simple.html
( /WEB-INF/pages/simple.jsp
) to my MVC Controller. 我映射
/simple.html
( /WEB-INF/pages/simple.jsp
)到我的MVC控制器。
@Controller
public class SimpleController {
@RequestMapping("/simple.html")
public String simpleHandler(Model model) {
return "simple";
}
}
When i request simple.html
, the SimpleController
get that request, but when i remove mapping to that controller, simple.html
leads to simple
flow. 当我请求
simple.html
, SimpleController
获得该请求,但是当我删除到该控制器的映射时, simple.html
导致simple
流程。 I see that MVC controller have higher priority and get request before it reach flow controller. 我看到MVC控制器具有更高的优先级,并在到达流控制器之前得到请求。 Of which is the result?
结果是什么? How it works in that situation ?
在这种情况下如何运作? Can i change request handling order/priorities of ordinary MVC controllers and Web Flow controller ?
我可以更改普通MVC控制器和Web Flow控制器的请求处理顺序/优先级吗?
I've done it using order
property. 我已经使用
order
属性完成了它。 It is set to 0
by default and MVC controllers handling request before flow controller. 默认情况下,它设置为
0
,并且MVC控制器在流量控制器之前处理请求。 I set order to -1
and now flow controller handle request before it reach my MVC controller. 我将order设置为
-1
,现在流控制器处理请求,直到它到达我的MVC控制器。 Is it good solution ? 这是好的解决方案吗?
<!-- Handle request after MVC controllers -->
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
<property name="flowRegistry" ref="flowRegistry"/>
<property name="order" value="0"/>
</bean>
<!-- Handle request BEFORE MVC controllers -->
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
<property name="flowRegistry" ref="flowRegistry"/>
<property name="order" value="-1"/>
</bean>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.