Spring MVC 注解基础
@Controller
@Controller 注解用于标记在 Java 类上。被 @Controller 标记过的类就是一个 SpringMVC Controller对象。DispatcherServlet 会扫描使用了该注解的类的方法,并检查对应方法是否有 @RequestMapping 注解标记。@Controller 只是定义了一个控制器类,而使用 @RequestMapping 注解的方法才是真正处理请求的处理器。如果处理器方法所在类没有 @Controller 注解便不能访问。

(@Controller)
(未使用 @Controller 注解访问)
@RequestMapping
@ReqeustMapping 注解可以标记在控制器类上。即映射请求 URL 到指定控制器。
@RequestMapping 注解还可以标记在处理请求的目标方法上。即映射请求 URL(类似 Servlet 开发中 web.xml 中配置的 Servlet 的 <url-pattern>)到处理器。

(控制器上的 @RequestMapping)

(处理器上的 @RequestMapping)
注:如果控制器(HelloWorld)类上没有该注解,那么访问路径为:helloworld 即可。
如果控制器(HelloWorld)类上有改注解,那么访问路径为:springmvc/helloworld。
value 属性名是默认属性,可以不写。
@RequestMapping 注解共有四个属性:
value、method、params、headers 分别表示 请求URL、请求方式、请求参数、请求头 的映射条件,它们之间是 AND 的关系,联合使用多个可以使请求映射更加精确。

(指定请求 URL 和 请求方式)

(指定多个映射条件)
@RequestMapping 注解还支持 Ant 风格的请求 URL:
Ant 风格资源地址支持3中匹配符:
● ?:匹配单个字符
● *:匹配任意字符
● **:匹配多层路径

(Ant 风格映射路径)
@PathVariable
@PathVariable 注解可以将 URL 中的占位符参数绑定到控制器处理方法的入参中。
带占位符的 URL 是 Spring3.x 后新增的功能,对于 SpringMVC 向 REST 发展很重要。

(@PathVariable 注解)
@RequestParam
@RequestParam 注解用于映射请求参数到控制器处理方法入参。

(@RequestParam 注解)
@RequestParam 注解有三个属性:
value:参数名
required:表示该参数是否必须存在,默认为 true
defaultValue:表示该参数的默认值,如果请求中不包含该参数,则使用默认值
@RequestHeader
@RequestHeader 注解用于映射请求头到目标方法入参。

(@RequestHeader 注解)
该注解也有同 @RequestParam 注解一样的三个参数,各自作用也与其一样。↑↑↑
使用 POJO 绑定请求参数值
SpringMVC 会根据请求参数名和 POJO 属性名进行自动匹配,自动为该对象属性填充对应的值,并且支持级联属性。

(UserInfo 类) (Address 类)

(表单项 name属性值为类中属性名)

(目标方法中获取 UserInfo 对象)
使用原生 Servlet API 作为目标方法入参(参数)
Spring MVC 支持使用原生的 Servlet API 作为目标方法的参数。具体支持以下几种类型:
HttpServletReuest、HttpServletResponse、HttpSession、java.securtiy.Principal、Locale、In(Out)putStream、Reader、Writer。

(使用原生 Servlet API 作为目标方法参数)
PS:本文存在诸多不足之处,望指出。谢谢!
未完待更...
Spring MVC 注解基础的更多相关文章
- 2.搭建配置最简单的spring mvc 工程-基础版
目标:用最少的东西,搭建可以运行的最最基础的springMvc登陆校验项目! spring 4 1.首先配置pom.xml引入spring 相关jar, 引用都有注释, 无关的可以暂时不引用. < ...
- Spring MVC注解的一些案列
1. spring MVC-annotation(注解)的配置文件ApplicationContext.xml <?xml version="1.0" encoding=& ...
- spring mvc(注解)上传文件的简单例子
spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...
- spring mvc 注解入门示例
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" ...
- spring mvc 注解示例
springmvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
- 关于Spring mvc注解中的定时任务的配置
关于spring mvc注解定时任务配置 简单的记载:避免自己忘记,不是很确定我理解的是否正确.有错误地方望请大家指出. 1,定时方法执行配置: (1)在applicationContext.xml中 ...
- spring mvc 注解@Controller @RequestMapping @Resource的详细例子
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- spring笔记2 spring MVC的基础知识2
2,spring MVC的注解驱动控制器,rest风格的支持 作为spring mvc的明星级别的功能,无疑是使得自己的code比较优雅的秘密武器: @RequestMapping处理用户的请求,下面 ...
- spring笔记1 spring MVC的基础知识1
1,spring MVC的流程 优秀的展现层框架-Spring MVC,它最出彩的地方是注解驱动和支持REST风格的url. 流程编号 完成的主要任务 补充 1 用户访问web页面,发送一个htt ...
随机推荐
- P3194 [HNOI2008]水平可见直线
传送门 我们把所有的直线按斜率从小到大排序,然后用单调栈维护 发现,如果当前直线与\(st[top-1]\)直线的交点的横坐标大于等于与\(st[top]\)的交点的横坐标,当前直线可以覆盖掉\(st ...
- mahjong
题目描述 “为什么, 你们的力量在哪里得到如此地......”“我们比 1 分钟前的我们还要进步, 虽然很微小, 但每转一圈就会前进一寸.这就是钻头啊!”“那才是通向毁灭的道路.为什么就没有意识到螺旋 ...
- 去掉myeclipse的预览窗口
1,选择菜单: windows -> preferences2,在弹出窗口中选择General-> Editors -> FileAssociations3,在上方框内选择*.jsp ...
- Coursera公开课-Machine_learing:编程作业3
第四周 编程作业: Multi-class Classification and Neural Networks 这周作业与上一周有许多相同的部分,比如longistic regression中的lr ...
- Java系列学习(零)-写在前面的话
1.为什么写这套笔记 理由一:因为需求,所以学习,然后就要记笔记 理由二:同时学几种相似的语言,怕搞混,所以写 2.笔记修改日志
- mysql和java的时间对应关系
引用:http://blog.csdn.net/xinghuo0007/article/details/51500923 MySQL(版本:5.1.50)的时间日期类型如下: datetime 8by ...
- [Windows Server 2008] 服务器安全加固
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:服务器安全加固 ...
- 删除ListView item数据 页面不刷新
最近碰到一个匪夷所思的事情.就是我删除listView中一条item数据 网络请求成功了 但是页面不成功,一番折腾 ,找到问题 ,原来我给item 添加了北京点击事假,又给listView 被禁设置 ...
- CSS中的disable,hidden,readonly
项目中有时候需要对某个input进行隐藏或者禁止修改等. 需要隐藏某个input的时候就用hidden <input hidden="true" > 如果要禁止修改in ...
- LVS部分调度算法的适应场景分析
1.轮叫调度算法(RR)假设所有服务器处理性能均相同,不管服务器的当前连接数和响应速度.该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,轮叫调度算法容易导致服务器 ...