Spring MVC

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

 @Controller
@RequestMapping("/flight")
public class ControlFlight /*implements Controller*/ { }

需要注意的是:

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

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

1. 第一种ModelAndView方式。

     <!--基于URL映射器-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props> <prop key="start1.do">ControlFlight</prop>
<prop key="buy.do">ControlFlight</prop>
<prop key="flight.do">ControlFlight</prop>
<prop key="result.do">ControlFlight</prop>
<!--<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>--> <bean id="ControlFlight" class="com.qunar.flight.control.ControlFlight"/> <!--ViewResolver映射-->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/flight/"/>
<property name="suffix" value=".jsp"/>
<property name="order" value="1"/>
</bean>

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

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

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拼接

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

还有另一种方法:

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

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

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

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

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

 @RequestMapping("/flight/{name}")
public ModelAndView toAdd(@PathVariable("name") String name){ ModelAndView mav = new ModelAndView("buy");
return mav;
}

Spring mvc Controller接口的更多相关文章

  1. Spring MVC Controller中解析GET方式的中文参数会乱码的问题(tomcat如何解码)

    Spring MVC Controller中解析GET方式的中文参数会乱码的问题 问题描述 在工作上使用突然出现从get获取中文参数乱码(新装机器,tomcat重新下载和配置),查了半天终于找到解决办 ...

  2. 转:【Spring MVC Controller单例陷阱】

    http://lavasoft.blog.51cto.com/62575/1394669/ Spring MVC Controller默认是单例的: 单例的原因有二:1.为了性能.2.不需要多例. 1 ...

  3. Spring MVC Controller单例陷阱

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lavasoft.blog.51cto.com/62575/1394669 Spr ...

  4. Spring MVC Controller中GET方式传过来的中文参数会乱码的问题

    Spring MVC controller 这样写法通常意味着访问该请求,GET和POST请求都行,可是经常会遇到,如果碰到参数是中文的,post请求可以,get请求过来就是乱码.如果强行对参数进行了 ...

  5. Spring MVC Controller 单元测试

    简介 Controller层的单元测试可以使得应用的可靠性得到提升,虽然这使得开发的时间有所增加,有得必失,这里我认为得到的比失去的多很多. Sping MVC3.2版本之后的单元测试方法有所变化,随 ...

  6. Spring MVC Controller与jquery ajax请求处理json

    在用 spring mvc 写应用的时候发现jquery传递的[json数组对象]参数后台接收不到,多订单的处理,ajax请求: "}]}]} $.ajax({ url : url, typ ...

  7. spring mvc controller中获取request head内容

    spring mvc controller中获取request head内容: @RequestMapping("/{mlid}/{ptn}/{name}") public Str ...

  8. Posting JSON to Spring MVC Controller

    Spring MVC can be setup to automatically bind incoming JSON string into a Java object. Firstly, ensu ...

  9. 关于Spring MVC Controller 层的单元测试

    关于Spring MVC Controller 层的单元测试 测试准备工作: 1.搭建测试Web环境 2.注入Controller 类 3.编写测试数据 测试数据的文件名一定要与测试类的文件名相同,比 ...

随机推荐

  1. Java数据结构之字符串模式匹配算法---KMP算法2

    直接接上篇上代码: //KMP算法 public class KMP { // 获取next数组的方法,根据给定的字符串求 public static int[] getNext(String sub ...

  2. linux文件基本属性

    在Linux中第一个字符代表这个文件是目录.文件或链接文件等等. 当为[ d ]则是目录 当为[ - ]则是文件: 若是[ l ]则表示为链接文档(link file): 若是[ b ]则表示为装置文 ...

  3. Sublime Text 3使用指南(1)——安装package control组件

    按Ctrl+`, 调出console 控制台中粘贴一下代码: import urllib.request,os; pf = 'Package Control.sublime-package'; ipp ...

  4. Unbuntu下使用SVN

    一.查看SVN版本 svn --version 二.查看SVN仓库 # 查看被svn仓库占用的所有端口 netstat -anp |grep svn # 查看所有端口对应的仓库 ps -ef | gr ...

  5. selenium-JS点击(项目应用)

    public static JavascriptExecutor jse; 声明一个js public LogoutWebElements(WebDriver driver){        Logo ...

  6. android shortcut &livefoulder

    android shortcut(实现步骤) 1.建立activity 2.minifest 里面注册并加上intent-filter,name为:android.intent.action.CREA ...

  7. 一行R代码来实现繁琐的可视化

    ggfortify 有着简单易用的统一的界面来用一行代码来对许多受欢迎的R软件包结果进行二维可视化的一个R工具包.这让许多的统计学家以及数据科学家省去了许多繁琐和重复的过程,不用对结果进行任何处理就能 ...

  8. idea jrebel6 安装,破解

    一.Setting中在线安装JRebel插件,install 二.拷贝下载的jrebel.rar解压后 把里面内容覆盖IDEA插件安装目录中此插件目录之下 下载:http://pan.baidu.co ...

  9. Django 1.10 找不到静态资源解决方法

    测试版本:Django 1.10 问题:Django项目找不到静态资源 解决方法: 1.首先你需要在自己的app下面创建2个目录 static 和  templates 树形结构如下(DjangoPr ...

  10. Kerberos是怎么工作的?

    Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证. 采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证. 关键要素 ...