SPRING_MVC3注解学习之注解配置.doc_第1页
SPRING_MVC3注解学习之注解配置.doc_第2页
SPRING_MVC3注解学习之注解配置.doc_第3页
SPRING_MVC3注解学习之注解配置.doc_第4页
SPRING_MVC3注解学习之注解配置.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Spring MVC3注解学习之注解配置原文地址:/post/431.htmlSpring MVC3的注解灵活强大,支持完全注解驱动,当放弃配置文件而完全采用注解配置时,你会被代码的简洁性深深吸引,这也是作者独立出一个篇幅来介绍其在Spring MVC3中的使用方法的根本原因。本文基于Spring3_MVC注解教程学习、总结而来,将从HTTP请求地址映射和通过注解绑定请求数据两个方面来介绍如何使用注解配置MVC,在此感谢作者的无私奉献,同时欢迎各位指点不妥之处。HTTP请求地址映射HTTP请求映射原理Spring MVC进行映射的依据请求路径映射表达式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?代表两个任意字符(特殊字符需要转码,转码后作为一个字符,如空格,转码为%20仍认为是一个字符,?的数量即为字符的数量),匹配/user/createUseraa、/user/createUserbb等URL/user/userIduserId代表一个字符串或数字的变量,匹配user/123、user/abc等URL/user/*/userId匹配user/aaa/bbb/123、user/aaa/456等URLcompany/companyId/user/userId/detail匹配company/123/user/456/detail等的URLRequestMapping的用法比较灵活,有如下几种仅供参考: RequestMapping(value=/delete)映射一个路径,且不限制HTTP请求方式 RequestMapping(value=/delete, method = RequestMethod.GET)映射一个路径,且只允许通过Get方式请求 RequestMapping(value=/delete, /del, method = RequestMethod.GET, RequestMethod.POST)映射多个路径,且只允许通过Get方式请求 RequestMapping(/delete)映射一个路径,且不限制HTTP请求方式 RequestMapping(/delete, /del)映射多个路径,且不限制HTTP请求方式 RequestMapping(value=/delete, method = RequestMethod.GET, RequestMethod.POST)映射多个路径,且只允许通过Get或POST方式请求对于RequestMapping来说,除了上述通过value限定HTTP请求路径、通过method限定HTTP请求方式外,还可以:通过params注解限定请求参数RequestMapping(value=/delete, params=userId) public String delete(RequestParam(userId) String userId) /删除用户通过headers注解限定请求标头(报文头)参数RequestMapping(value=/show,headers=content-type=text/*)public String show(RequestParam(userId) String userId) /显示用户详情在上述两个例子中,params和headers分别对请求参数及报文头属性进行限定,它们支持简单的表达式,下面以params表达式为例说明,headers可以参照params进行理解之: userId表示请求必须包含名为userId的请求参数 !userId:表示请求不能包含名为userId的请求参数 userId!=value1:表示请求包含名为userId的请求参数,但其值不能为value1 userId=value1,userName:请求必须包含名为userId和userName的两个请求参数,且param1参数的值必须为value1通过注解绑定请求数据绑定请求参数:RequestMapping(value=/rename)public String rename(RequestParam(userName) String userName, RequestParam(password) String password, RequestParam(rename) String rename)/具体处理代码绑定Cookies参数RequestMapping(value=/cookies)public String cookies(CookieValue(JSESSIONID) String sessionId)/具体处理代码绑定请求标头(报文头)参数RequestMapping(value=/index)public String index(RequestHeader(Accept-Language) String accpetLanguage)/具体处理代码RequestParam有以下三个参数:value:参数名required:是否必需,默认为true,表示请求中必须包含对应的参数名,如果不存在将抛出异常defaultValue:默认参数名,设置该参数时,自动将required设为false。极少情况需要使用该参数,也不推荐使用该参数。RequestMapping(value=/getUser)public String getUser(RequestParam(userName) String userName,)/根据用户名获取用户信息上面所示代码的处理方法是不安全的:如果HTTP请求不包含userName参数,将会导致异常!因此,如果不能保证userName参数一定存在,为了安全起见,请使用:RequestParam(value = userName, required = false)替代!使用命令/表单对象绑定所谓命令/表单对象并不需要实现任何接口,仅是一个拥有若干属性的POJO。Spring MVC按:“HTTP请求参数名 = 命令/表单对象的属性名”的规则,自动绑定请求数据,支持“级联属性名”,自动进行基本类型数据转换。示意图如下:范例代码如下:RequestMapping(value = /show, view, method = RequestMethod.GET, RequestMethod.POST)public String show(User user, Model model) model.addAttribute(username, springmvc);model.addAttribute(password, 类型非常灵活);return show;总结:通过注解配置MVC非常的方便和快捷,个人尤其喜欢Controller和RequestMapping以及参数绑定。在Spring MVC3中用的比较多的(同时也是个人认为比较好用的)注解有如下几个:Controller将一个JavaBean声明为一个Controller控制器RequestMapping将一个普通的JavaBean方法声明

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论