简体   繁体   English

MVC控制器和Web流控制器-请求处理优先级

[英]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.htmlSimpleController获得该请求,但是当我删除到该控制器的映射时, 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM