欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring MVC 注解基础(一)

程序员文章站 2022-04-14 21:55:38
@Controller @Controller 注解用于标记在 Java 类上。被 @Controller 标记过的类就是一个 SpringMVC Controller对象。DispatcherServlet 会扫描使用了该注解的类的方法,并检查对应方法是否有 @RequestMapping 注解标 ......

@Controller

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

  Spring MVC 注解基础(一) 

        (@Controller)  

  Spring MVC 注解基础(一)                                      (未使用 @Controller 注解访问)

 

@RequestMapping

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

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

  Spring MVC 注解基础(一)

      (控制器上的 @RequestMapping)

  Spring MVC 注解基础(一)

       (处理器上的 @RequestMapping)

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

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

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

   @RequestMapping 注解共有四个属性:

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

    Spring MVC 注解基础(一)

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

    Spring MVC 注解基础(一)

                          (指定多个映射条件)

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

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

        ● ?:匹配单个字符

        ● *:匹配任意字符

        ● **:匹配多层路径

     Spring MVC 注解基础(一)

                               (Ant 风格映射路径) 

 

@PathVariable

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

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

   Spring MVC 注解基础(一)

                        (@PathVariable 注解)

 

@RequestParam

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

   Spring MVC 注解基础(一)

                           (@RequestParam 注解)

   @RequestParam 注解有三个属性:

    value:参数名

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

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

 

@RequestHeader

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

   Spring MVC 注解基础(一)

                             (@RequestHeader 注解)

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

 

使用 POJO 绑定请求参数值

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

   Spring MVC 注解基础(一)            Spring MVC 注解基础(一)

          (UserInfo 类)                            (Address 类)

    

   Spring MVC 注解基础(一)

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

   Spring MVC 注解基础(一)

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

 

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

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

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

    Spring MVC 注解基础(一)

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

 

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

未完待更...