资源描述:
《spring_mvc3注解学习之注解配置》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、SpringMVC3注解学习之注解配置原文地址:http://www.yshjava.cn/post/431.htmlSpringMVC3的注解灵活强大,支持完全注解驱动,当放弃配置文件而完全采用注解配置时,你会被代码的简洁性深深吸引,这也是作者独立出一个篇幅来介绍其在SpringMVC3中的使用方法的根本原因。本文基于《Spring3_MVC注解教程》学习、总结而来,将从HTTP请求地址映射和通过注解绑定请求数据两个方面来介绍如何使用注解配置MVC,在此感谢作者的无私奉献,同时欢迎各位指点不妥之处。HTTP请求地址映射HTTP请求映射原理SpringMVC进行映射的依据请求路径映
2、射表达式@RequestMapping注解用于声明请求映射路径,除了标准的URL,还支持Ant风格(即?、*和**的字符)的和带{xxx}占位符的URL。如下所示/user/*/createUser*号代表一层任意内容的目录,匹配/user/aaa/createUser、/user/bbb/createUser等URL/user/**/createUser**代表0到多层任意内容的目录,匹配/user/createUser、/user/aaa/bbb/createUser等URL/user/createUser????代表两个任意字符(特殊字符需要转码,转码后作为一个字符,如空格,
3、转码为%20仍认为是一个字符,?的数量即为字符的数量),匹配/user/createUseraa、/user/createUserbb等URL/user/{userId}{userId}代表一个字符串或数字的变量,匹配user/123、user/abc等URL/user/**/{userId}匹配user/aaa/bbb/123、user/aaa/456等URLcompany/{companyId}/user/{userId}/detail匹配company/123/user/456/detail等的URL@RequestMapping的用法比较灵活,有如下几种仅供参考:·@Req
4、uestMapping(value="/delete")映射一个路径,且不限制HTTP请求方式·@RequestMapping(value="/delete",method=RequestMethod.GET)映射一个路径,且只允许通过Get方式请求·@RequestMapping(value={"/delete","/del"},method={RequestMethod.GET,RequestMethod.POST})映射多个路径,且只允许通过Get方式请求·@RequestMapping("/delete")映射一个路径,且不限制HTTP请求方式·@RequestMappin
5、g({"/delete","/del"})映射多个路径,且不限制HTTP请求方式·@RequestMapping(value="/delete",method={RequestMethod.GET,RequestMethod.POST})映射多个路径,且只允许通过Get或POST方式请求对于@RequestMapping来说,除了上述通过value限定HTTP请求路径、通过method限定HTTP请求方式外,还可以:通过params注解限定请求参数@RequestMapping(value="/delete",params="userId")publicStringdelete(@
6、RequestParam("userId")StringuserId){//删除用户}通过headers注解限定请求标头(报文头)参数@RequestMapping(value="/show",headers="content-type=text/*")publicStringshow(@RequestParam("userId")StringuserId){//显示用户详情}在上述两个例子中,params和headers分别对请求参数及报文头属性进行限定,它们支持简单的表达式,下面以params表达式为例说明,headers可以参照params进行理解之:·"userId"表示请
7、求必须包含名为userId的请求参数·"!userId":表示请求不能包含名为userId的请求参数·"userId!=value1":表示请求包含名为userId的请求参数,但其值不能为value1·{"userId=value1","userName"}:请求必须包含名为userId和userName的两个请求参数,且param1参数的值必须为value1通过注解绑定请求数据绑定请求参数:@RequestMapping(value="/rename")public