• 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     }
  • 相关阅读:
    #检查磁盘使用率超过90%,并且后台进程没有rman在跑,就运行 /data/script/del_dg_arch.sh 脚本清理归档
    linux shell数据重定向
    创建用户
    Linux HA+ Oracle 安装维护手册
    解决UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range
    Linux 文件不能被root修改与编辑原因
    python中的时间戳和格式化之间的转换
    Python-Redis-发布订阅
    Python-Redis-常用操作&管道
    Python-Redis-Set
  • 原文地址:https://www.cnblogs.com/gongxijun/p/5338104.html
Copyright © 2020-2023  润新知