Springmvc4.x笔记之3.RequestMapping
2015-11-08 21:51
495 查看
Spring MVC使用
@RequestMapping标注出url,它可以标记在类上也可以标记在方法上。
标记在类上,提供
标记在方法上,提供进一步的细分映射信息。相对于类定义处的URL。若类定义处未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录。
在进行URL请求的时候,必然是请求到方法上的映射,因为类上的映射最多只能为方法映射的URL再增加上一部分相对请求路径。也就是说,类上的URL+方法上的URL=相对于应用的地址。
DispatcherServlet根据注解上url和请求的url进行匹配,匹配上则调用相应的方法进行响应。
如:
这个方法相对于web应用的路径是:/springmvc/testRequestMapping
若web应用的路径是:http://localhost:8080/springmvc
则,该请求的完整路径是:
http://localhost:8080/springmvc/springmvc/testRequestMapping
在使用@RequestMapping注解的时候,只给出一个值的时候,实际上是赋值给了value。
可以在@RequestMapping注解中指定请求类型参数,控制该方法处理哪种请求:
用method属性指定请求类型,请求类型在
它是个枚举类型。
以上通过method设定了方法响应的请求的类型为POST,这个时候如果以GET方式发起请求,那么该请求将不会被响应:
而POST请求需要以表单提交的时候才能被更改:
@RequestMapping的value、method、params、和headers分别表示
params和headers支持简单的表达式:
params = {“username”,”age!=10”}: params接受一个数组为参数,数组内容是对请求参数的限制,
“username”:表示请求参数中必须要有username,否则不会响应请求。
“age!=10”: 表示请求参数中的age必须不能等于10,否则不会响应请求,而如果没有age,那么还是会响应的。
@RequestMapping注解为
控制器指定可以处理哪些url请求。
@RequestMapping标注出url,它可以标记在类上也可以标记在方法上。
标记在类上,提供
初步的请求映射信息。这个URL相对于WEB应用的根目录。
标记在方法上,提供进一步的细分映射信息。相对于类定义处的URL。若类定义处未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录。
在进行URL请求的时候,必然是请求到方法上的映射,因为类上的映射最多只能为方法映射的URL再增加上一部分相对请求路径。也就是说,类上的URL+方法上的URL=相对于应用的地址。
DispatcherServlet根据注解上url和请求的url进行匹配,匹配上则调用相应的方法进行响应。
如:
@RequestMapping("/springmvc") @Controller public class SpringMVCTest { private static final String SUCCESS = "success"; @RequestMapping("/testRequestMapping") public String testRequestMapping() { System.out.println("testRequestMapping"); return SUCCESS; } }
这个方法相对于web应用的路径是:/springmvc/testRequestMapping
若web应用的路径是:http://localhost:8080/springmvc
则,该请求的完整路径是:
http://localhost:8080/springmvc/springmvc/testRequestMapping
在使用@RequestMapping注解的时候,只给出一个值的时候,实际上是赋值给了value。
可以在@RequestMapping注解中指定请求类型参数,控制该方法处理哪种请求:
@RequestMapping(value="/testMethod",method= RequestMethod.POST) public String testMethod() { System.out.println("testMethod"); return SUCCESS; }
用method属性指定请求类型,请求类型在
org.springframework.web.bind.annotation.RequestMethod中定义:
public enum RequestMethod { GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE }
它是个枚举类型。
以上通过method设定了方法响应的请求的类型为POST,这个时候如果以GET方式发起请求,那么该请求将不会被响应:
而POST请求需要以表单提交的时候才能被更改:
<form action="springmvc/testMethod" method="post"> <input type="submit" value="submit"/> </form>
@RequestMapping的value、method、params、和headers分别表示
请求URL,
请求方法、
请求参数及
请求头的映射条件,他们之间是
与的关系,联合使用多个条件可让请求映射更加精确化。
params和headers支持简单的表达式:
@RequestMapping(value="/testParamsAndHeaders",params = {"username","age!=10"}) public String testParamsAndHeaders() { System.out.println("testParamsAndHeaders"); return SUCCESS; }
params = {“username”,”age!=10”}: params接受一个数组为参数,数组内容是对请求参数的限制,
“username”:表示请求参数中必须要有username,否则不会响应请求。
“age!=10”: 表示请求参数中的age必须不能等于10,否则不会响应请求,而如果没有age,那么还是会响应的。
相关文章推荐
- Android6.0权限管理
- spring的applicationContext.xml如何自动加载
- 1-读书笔记----iOS开发指南:从零基础到App Store上架--iOS入门
- Android TextView跑马灯
- android顶部导航栏的封装
- iOS项目中删除默认的并使用自建的ViewController后黑屏
- Android Studio使用Github托管代码
- android获取string.xml的值
- iOS 状态栏管理
- 文件系统
- 1.Unity脚本生命周期
- mybatis_generator 自动化生成实体及mapper
- Android中Application类用法(转)
- 内存管理的基本概念及范围
- #在蓝懿学习iOS的日子#day14
- 手机端实现Protocol Buffer
- android中的数据库操作
- apk反编译
- java微信消息加解密
- Android 系统信息获取(CPU,RAM,ROM,Battery,SD-card,版本等)