Spring MVC 注解基础 @Controller @RequestMapping @PathVariable @RequestParam @RequestHeader 使用 POJO 绑定请求参数值 使用原生 Servlet API 作为目标方法入参(参数)

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

  Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数) 

        (@Controller)  

  Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)                                      (未使用 @Controller 注解访问)

@RequestMapping

  @ReqeustMapping 注解可以标记在控制器类上。即映射请求 URL 到指定控制器。

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

  Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

      (控制器上的 @RequestMapping)

  Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

       (处理器上的 @RequestMapping)

   注:如果控制器(HelloWorld)类上没有该注解,那么访问路径为:helloworld 即可。

     如果控制器(HelloWorld)类上有改注解,那么访问路径为:springmvc/helloworld。

     value 属性名是默认属性,可以不写。

   @RequestMapping 注解共有四个属性:

    value、method、params、headers 分别表示 请求URL、请求方式、请求参数、请求头 的映射条件,它们之间是 AND 的关系,联合使用多个可以使请求映射更加精确。

    Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

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

    Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

                          (指定多个映射条件)

   @RequestMapping 注解还支持 Ant 风格的请求 URL:

      Ant 风格资源地址支持3中匹配符:

        ● ?:匹配单个字符

        ● *:匹配任意字符

        ● **:匹配多层路径

     Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

                               (Ant 风格映射路径) 

@PathVariable

   @PathVariable 注解可以将 URL 中的占位符参数绑定到控制器处理方法的入参中。

   带占位符的 URL 是 Spring3.x 后新增的功能,对于 SpringMVC 向 REST 发展很重要。

   Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

                        (@PathVariable 注解)

@RequestParam

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

   Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

                           (@RequestParam 注解)

   @RequestParam 注解有三个属性:

    value:参数名

    required:表示该参数是否必须存在,默认为 true

    defaultValue:表示该参数的默认值,如果请求中不包含该参数,则使用默认值

@RequestHeader

   @RequestHeader 注解用于映射请求头到目标方法入参。

   Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

                             (@RequestHeader 注解)

   该注解也有同 @RequestParam 注解一样的三个参数,各自作用也与其一样。↑↑↑

使用 POJO 绑定请求参数值

   SpringMVC 会根据请求参数名和 POJO 属性名进行自动匹配,自动为该对象属性填充对应的值,并且支持级联属性。

   Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)            Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

          (UserInfo 类)                            (Address 类)

    

   Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

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

   Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

              (目标方法中获取 UserInfo 对象)

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

   Spring MVC 支持使用原生的 Servlet API 作为目标方法的参数。具体支持以下几种类型:

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

    Spring MVC 注解基础
@Controller
@RequestMapping
@PathVariable
@RequestParam
@RequestHeader
使用 POJO 绑定请求参数值
使用原生 Servlet API 作为目标方法入参(参数)

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

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

未完待更...