Spring mvc Controller接口

Posted Gxjun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring mvc Controller接口相关的知识,希望对你有一定的参考价值。

 

Spring MVC 

1. 继承该接口 Controller接口,重写对应方法,或者采用注解Controller,自定义映射文件

1 @Controller
2 @RequestMapping("/flight")
3 public class ControlFlight /*implements Controller*/ {
4 
5 
6 }

 

需要注意的是: 

SimpleUrlHandlerMapping 决定使用哪一个控制器。

 

其中对于prexf-servlet-.xml文件中使重定向方式:

 

1. 第一种ModelAndView方式。

 1     <!--基于URL映射器-->
 2         <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 3             <property name="mappings">
 4                 <props>
 5 
 6                     <prop key="start1.do">ControlFlight</prop>
 7                     <prop key="buy.do">ControlFlight</prop>
 8                     <prop key="flight.do">ControlFlight</prop>
 9                     <prop key="result.do">ControlFlight</prop>
10                     <!--<prop key="start.do">loginController</prop>-->
11                 </props>
12             </property>
13         </bean>
14 
15       <!--  <bean id="loginController" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
16             <property name="viewName" value="buy"/>
17         </bean>-->
18 
19     <bean id="ControlFlight" class="com.qunar.flight.control.ControlFlight"/>
20 
21 
22     <!--ViewResolver映射-->
23     <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
24         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
25         <property name="prefix" value="/WEB-INF/flight/"/>
26         <property name="suffix" value=".jsp"/>
27         <property name="order" value="1"/>
28     </bean>

之后进入Controller中进行任务分派:

1     @RequestMapping(value = "/start.do", method = RequestMethod.GET)
2     public ModelAndView BuyAirTicket() {
3 
4         return new ModelAndView("buy");
5     }

 

 

2  第二种采用

        <!--基于URL映射器-->
        <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>

                    <prop key="start.do">loginController</prop>
                </props>
            </property>
        </bean>

        <bean id="loginController" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
            <property name="viewName" value="buy"/>
        </bean>

然后和下面的部分代码实现URL拼接

1     <!--ViewResolver映射-->
2     <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
3         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
4         <property name="prefix" value="/WEB-INF/flight/"/>
5         <property name="suffix" value=".jsp"/>
6         <property name="order" value="1"/>
7     </bean>

还有另一种方法:

就是直接使用这个命令,但是前提条件是,请求URI的前缀(过滤掉.vm,.htm等)和转发的一样,则直接可以使用

 1 <bean id="loginController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/> 

3  继承AbstractControlle 接口,并实现相应的方法,次方法和Controller相同,但是对于如果想封装表单请求,可以直接使用CommandController,-->AbstractCommandController(3.0以上版本废弃)

4. 注解@RequestMapping("/path") -->在类级别上定义注解时,那么再用此方法注解方法method时,那么method下的路径是与类路径相对。

@PathVariable 该注释是用来指明URL路径里面取参数,这个注解可以多个使用,下面时使用一种的代码片段

1 @RequestMapping("/flight/{name}")
2     public ModelAndView toAdd(@PathVariable("name") String name){
3 
4         ModelAndView mav = new ModelAndView("buy");
5         return mav;
6     }

 

以上是关于Spring mvc Controller接口的主要内容,如果未能解决你的问题,请参考以下文章

spring mvc HandelMapping

java之spring mvc之数据处理

Spring MVC Controller异常处理总结

Spring MVC 常用注解@Controller,@RequestMapping,Model和ModelAndView

springmvc中的newhashmap作用

一个请求过来,Spring MVC 是如何找到正确的 Controller 的?