@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 作为目标方法的参数。具体支持以下几种类型:

    HttpServletReuestHttpServletResponseHttpSession、java.securtiy.Principal、Locale、In(Out)putStream、Reader、Writer

    

                      (使用原生 Servlet API 作为目标方法参数)

PS:本文存在诸多不足之处,望指出。谢谢!

未完待更...

Spring MVC 注解基础的更多相关文章

  1. 2.搭建配置最简单的spring mvc 工程-基础版

    目标:用最少的东西,搭建可以运行的最最基础的springMvc登陆校验项目! spring 4 1.首先配置pom.xml引入spring 相关jar, 引用都有注释, 无关的可以暂时不引用. < ...

  2. Spring MVC注解的一些案列

    1.  spring MVC-annotation(注解)的配置文件ApplicationContext.xml <?xml version="1.0" encoding=& ...

  3. spring mvc(注解)上传文件的简单例子

    spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...

  4. spring mvc 注解入门示例

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" ...

  5. spring mvc 注解示例

    springmvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  6. 关于Spring mvc注解中的定时任务的配置

    关于spring mvc注解定时任务配置 简单的记载:避免自己忘记,不是很确定我理解的是否正确.有错误地方望请大家指出. 1,定时方法执行配置: (1)在applicationContext.xml中 ...

  7. spring mvc 注解@Controller @RequestMapping @Resource的详细例子

    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...

  8. spring笔记2 spring MVC的基础知识2

    2,spring MVC的注解驱动控制器,rest风格的支持 作为spring mvc的明星级别的功能,无疑是使得自己的code比较优雅的秘密武器: @RequestMapping处理用户的请求,下面 ...

  9. spring笔记1 spring MVC的基础知识1

    1,spring MVC的流程 优秀的展现层框架-Spring MVC,它最出彩的地方是注解驱动和支持REST风格的url.   流程编号 完成的主要任务 补充 1 用户访问web页面,发送一个htt ...

随机推荐

  1. oracle基础学习---------1

    1.SQL执行时间的开关 set timing on --->开         set timing off--->关 2.创建数据表.以已存在的表创建(也就是复制一个表.但表内没有数据 ...

  2. codevs1993 草地排水(最大流)

    1993 草地排水 USACO  时间限制: 2 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond   题目描述 Description 在农夫约翰的农场上,每逢下雨,Bes ...

  3. [Swift通天遁地]四、网络和线程-(4)使用Alamofire实现网络请求

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  4. Redis基本属性的使用-详细

    Redis 数据结构简介 Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串).List(列表).Set(集合).Hash(散列)和 Zset(有序集 ...

  5. ACM_二维数组的查找

    二维数组的查找 Time Limit: 2000/1000ms (Java/Others) Problem Description: 给定一个n*m的二维数组,保证a[i][j] < a[i+1 ...

  6. day03_12/13/2016_bean的管理之依赖注入

  7. Spark SQL入门案例之人力资源系统数据处理

    通过该案例,给出一个比较完整的.复杂的数据处理案例,同时给出案例的详细解析. 人力资源系统的管理内容组织结构图 1) 人力资源系统的数据库与表的构建. 2) 人力资源系统的数据的加载. 3) 人力资源 ...

  8. DataFrame编程模型初谈与Spark SQL

    Spark SQL在Spark内核基础上提供了对结构化数据的处理,在Spark1.3版本中,Spark SQL不仅可以作为分布式的SQL查询引擎,还引入了新的DataFrame编程模型. 在Spark ...

  9. 2018.10.9 logstash启动慢的问题解决

    问题描述: 线上部署logstash 启动非常缓慢,达到了10分钟 问题解决 忍无可忍 网上资料基本都是熵过低导致jruby启动缓慢的问题,需要安装haveged 参考https://www.jian ...

  10. Ch03 React/JSX/Component 簡介

    Facebook 本身有提供 Test Utilities,但由于不够好用,所以目前主流开发社群比较倾向使用 Airbnb 团队开发的 enzyme,其可以与市面上常见的测试工具(Mocha.Karm ...