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     }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JAVA高级架构

Spring MVC工作原理

1302
来自专栏王二麻子IT技术交流园地

《SpringMVC从入门到放肆》一、概述

一、SpringMVC概述 View Service Dao DB Spring MVC interface interface Mysql im...

3668
来自专栏Laoqi's Linux运维专列

blocked for more than 120 seconds

2433
来自专栏nnngu

Spring MVC的配置和使用

笔记仓库:https://github.com/nnngu/LearningNotes

2169
来自专栏Java学习123

NFS常见错误

3988
来自专栏Ken的杂谈

Spring Boot入门教程1、使用Spring Boot构建第一个Web应用程序

项目模板:maven-archetype-webapp GroupId:io.ken.springboot-course ArtifactId:springbo...

971
来自专栏编程微刊

vue踩坑记-在项目中安装依赖模块npm install报错

在维护别人的项目的时候,在项目文件夹中安装npm install模块的时候,报错如下:

1281
来自专栏Java技术栈

终于,Spring 5.0正式发布了!

Spring 5.0都有什么新功能? 1、最低要求支持JDK8+, J2EE 7+。 2、移除了一些包、类及方法。 3、核心功能加强:全面应用jdk8并兼容j...

3397
来自专栏james大数据架构

教你一步搭建Flume分布式日志系统

  在前篇几十条业务线日志系统如何收集处理?中已经介绍了Flume的众多应用场景,那此篇中先介绍如何搭建单机版日志系统。 环境   CentOS7.0     ...

2649
来自专栏Ken的杂谈

Spring Cloud 入门教程1、服务注册与发现(Eureka)

Eureka是Netflix开源的服务注册与发现框架,Eureka由两个组件组成:Eureka服务器和Eureka客户端。

1292

扫码关注云+社区

领取腾讯云代金券