控制器的类定义及方法定义处都可以标注@RequestMapping:
- 类定义处:提供初步的请求映射信息相对于WEB 应用的根目录。
-
方法定义处:提供进一步的细分映射信息相对于类定义处的URL。若类定义处未标注@RequestMapping则方法处标记的URL 相对于WEB 应用的根目录。
那么通过上面的超链接地址”helloworld”訪问则会提示:
类定义处标记的@RequestMapping(“/hello”)限定了处理器类可以处理所有URL为/hello的请求它相对于WEB容器部署的根路径;而通过在方法处标记@RequestMapping注解,则可以实现让处理器类定义多个处理方法以处理来自/hello下的不同请求。
@RequestMapping除了可以使用请求URL映射请求外还可以使用请求方法、请求参数及请求头映射请求
分别表示请求URL、请求方法、请求参数及请求头的映射条件,他们之间是与的关系联合使用多个条件可让请求映射更加精确化(params和headers不常用,了解即可)method指定请求方式为GET或是POST,params的表达式格式如下:(headers与其类似)
- param1: 表示请求必须包含名为param1 的请求参数
-
那么比如我们现在可以将hello()方法注解为:
?:匹配文件名中的一个字符
带占位符的URL 是Spring3.0 新增的功能,该功能在springmvc工作原理向REST目标挺进发展过程中具有里程碑的意义通过@PathVariable可以将URL 中占位符参数绑定到控制器处理方法的参数中:URL 中的{xxx} 占位符可以通 过@PathVariable(“xxx”)
绑定到操作方法的入参中,注意两个“xxx”必须一致例如,我们可以将方法hello()注解为:
REST是目前最流行的一种互联网软件架构它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用解释一下名词:
将控制器中的方法限定为只处理请求方法为DELETE的请求:
页面中的form表單为:
注:以上内容参考自佟刚老师的Spring MVC视频教程。