Spring3系列13-Controller和@RequestMapping
来源:互联网 发布:linux 创建多级文件夹 编辑:程序博客网 时间:2024/06/05 10:04
Spring3系列13-Controller和@RequestMapping
Spring3系列13-Controller和@RequestMapping
Controller返回值,String或者ModelAndView
@RequestMapping关联url
@RequestMapping的属性
一、 Controller返回值,String或者ModelAndView
首先看一下spring的配置文件,如下
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.lei.demo.controller" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/user/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans>
第一种,返回类型为String,Controller中的方法如下
@RequestMapping(value="welcome",method=RequestMethod.GET) public String printMessage(ModelMap model) { model.addAttribute("message", "返回类型String"); return "users"; }
根据spring配置文件和以上controller,访问“/welcome”时,对应的返回页面为“/WEB-INF/user/users.jsp”
第二种,返回类型为ModelAndView,Controller中的方法如下
@RequestMapping("/welcome") public ModelAndView printMessage (){ ModelAndView mv = new ModelAndView(); mv.addObject("message", "返回类型ModelAndView "); mv.setViewName("users"); return mv; }
两种方法返回的页面相同,不同的是第二种方法将model和view整合成ModelAndView实例,方法中不需要再加入model参数。
二、 @RequestMapping关联url
@RequestMapping可以是类级别和方法级别。
1. 类级别,类前有@RequestMapping
@Controller@RequestMapping("/user")public class UserController { //访问此方法的url为“/user/manager”,url前要加入类级别的路径/user @RequestMapping(value="/manager",method=RequestMethod.GET) public ModelAndView printMessage(){ ModelAndView mv = new ModelAndView(); mv.addObject("message", "MVC"); mv.setViewName("users"); return mv; }//访问此方法的url为“/user/hello”,url前要加入类级别的路径/user @RequestMapping(value="/hello",method=RequestMethod.GET) public ModelAndView hello(){ ModelAndView mv = new ModelAndView(); mv.addObject("message", "hello"); mv.setViewName("users"); return mv; }}
2. 方法级别,类前没有@RequestMapping
@Controllerpublic class UserController { //没有类级别的@RequestMapping,访问此方法的url为“/manager” @RequestMapping(value="/manager",method=RequestMethod.GET) public ModelAndView printMessage(){ ModelAndView mv = new ModelAndView(); mv.addObject("message", "MVC"); mv.setViewName("users"); return mv; }//没有类级别的@RequestMapping,访问此方法的url为“/hello” @RequestMapping(value="/hello",method=RequestMethod.GET) public ModelAndView hello(){ ModelAndView mv = new ModelAndView(); mv.addObject("message", "hello"); mv.setViewName("users"); return mv; }}
3. @RequestMapping支持多个映射路径映射到同一个controller
@RequestMapping(value={"/hello","/foo"}) public ModelAndView hello(){ ModelAndView mv = new ModelAndView(); mv.addObject("message", "hello"); mv.setViewName("users"); return mv; }
以上“/hello”和“/foo”映射到同一个函数处理。
三、 @RequestMapping的属性
@RequestMapping有如下几个属性:value、method、params、headers
这几个属性用法如下
1. @RequestMapping中的value属性
通过value属性,表达主要的映射,在Servlet环境中,映射路径(如,/myPath.do),也支持Any风格的(如,/myPath/*.do)。在方法级别中的相对路径需要类级别的主路径支持。
@RequestMapping("/user")等同于@RequestMapping(value="/user")
2. @RequestMapping中的method属性
通过HTTP请求的method来缩小主映射的范围。GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE。支持定义在类级别或方法级别。
3. @RequestMapping中的params属性
格式为“paramname=paramvalue” 或 “paramname!=paramvalue”。不带参数则表示paramvalue可以为任意值。
例如,params = {"param1=1","param2!=2","param3"},表示对应的url必须包括param1,param2,param3三个参数,其中param1的值必须为1,param2的值不能为2,param3的值可以为任意值。
4. @RequestMapping中的headers属性
headers用来限定对应的reqeust请求的headers中必须包括的内容,例如
headers={"Connection=keep-alive"}, 表示请求头中的connection的值必须为keep-alive。
转载自:http://www.cnblogs.com/leiOOlei/p/3658076.html
- Spring3系列13-Controller和@RequestMapping
- Spring3系列13-Controller和@RequestMapping
- Spring3-Controller和@RequestMapping
- Spring3 MVC ---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC ---注解基本配置及@controller和 @RequestMapping 常用解
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Spring3 MVC 注解---注解基本配置及@controller和 @RequestMapping 常用解释
- SpringMVC注解...@controller和@RequestMapping
- eclise快捷键
- 关于读取properties文件找不到路径问题
- jQuery响应式移动优先的图片比较滑块插件
- 利用秘钥通过ssh互访的问题总结
- Win8.1宽带连接后自动打开Bing或其他网页的解决方法
- Spring3系列13-Controller和@RequestMapping
- BlazeDS 整合 Flex
- poj 2769 暴力(memset的限制)
- 高精度练习之减法
- Shell脚本编程的一些小风格
- 文章标题
- centos下使得php支持mysql
- 纯js可定制的跨浏览器日期时间选择器插件
- 华为 Java 编程军规,每季度代码验收标准