• SpingMVC常用注解


    @Controller

      指明Spring类的实例是一个控制器,是SpringMVC Controller对象

    @RequestMapping

      指定哪个类或者方法处理请求动作

      修饰方法,映射对应请求,每个请求处理方法可以有多个不同类型的参数,Spring会自动将对象正确的传递给方法

      修饰类,所有方法映射为类级别的请求,表示该控制器的所有请求都被映射到value属性指定的路径下

        @Controller

        @RequestMapping("/user")

        public class UserController{

          @RequestMapping("/register")

          public String register(){...}

          @RequestMapping("/login")

          public String login(){...}

        }

        被映射的URL:http://localhost:8080/user/register  http://localhost:8080/user/login

      支持的属性:

        value:默认属性,是唯一属性的时候可以省略属性名,映射一个请求和一种方法  @RequestMapping()value="/user")

        method:指定该方法仅仅处理那些HTTP请求方式  @RequestMapping()value="/user",method=RequestMethod.POST)

          多个则为@RequestMapping()value="/user",method={RequestMethod.POST,RequestMethod.GET})

        consumes:指定处理请求的提交内容类型(Content-type)

          @RequestMapping()value="/user",method={RequestMethod.POST,RequestMethod.GET},consumes="application/json")

          方法仅处理request Content-type为application/json类型的请求

        produces:指定返回的内容类型,返回的内容类型必须是request请求头(Accept)中所包含的类型

          @RequestMapping()value="/user",method={RequestMethod.POST,RequestMethod.GET},consumes="application/json",produces="application/json")

          方法仅处理request请求中Accept头中包含了application/json的请求,同时指明了返回类型为applicatioin/json

        params:指定request中必须包含某些参数值,才会处理

          @RequestMapping(value="/hello",params="myParam=myValue")

          方法仅处理其中名为myParam,值为myValue的请求

        headers:指定request中必须包含某些指定的header值,才会处理

          @RequestMapping(value="/hello",headers="Referer=http://....")

          方法仅处理request的header中包含了Referer请求头和对应值为http://...的请求

    @RequestParam

      将指定的请求参数复制给方法中的形参

      @RequestMapping("/hello")

      public ModelAndView login(@RequestParam("loginname") String loginname, @RequestParam("password") String password){...}

      对应的请求:http://localhost:8080/context/login?loginname=amm&password=loveangel

      支持的属性:name 绑定的名称,value name属性的别名,required 是否必须绑定 defaultValue 没有传递参数时使用的默认值

      @RequestParam(value="loginname",required=true,defaultValue="admin")

    @PathVariable

      获得请求的URL中的动态参数

      只支持一个属性value,类型为String,表示绑定的名称,省略则默认绑定同名参数

      @RequestMapping(value="/hello/{id}")

      public void hello(@PathVariable Integer id)

      对应的请求:http://localhost:8080/context/hello/1  把id变量赋值为1

    @RequestHeader

      将请求头的数据映射到处理方法的参数上

      支持的属性:name,value,required,defaultValue

      @ReuqestMapping("/hello")

      public void hello(@RequestHeader("User-Agent") String userAgent){...}

      自动将请求头中User-Agent的值赋值到userAgent上

    @CookieValue

      将请求的Cookie数据映射到参数上

    @SessionAttributes

      只能声明在类上,不能声明在方法上,选择指定Model中那些属性转存到HttpSession对象中

      @SessionAttributes("user")

      public class aa{public void login(Model model){model.addAttribute("user","a")}}

      将model中的user属性转存到HttpSession对象中

    @ModelAttribute

      将请求参数绑定到Model对象

      只支持一个属性name,没有时按默认返回值的类型命名

      修饰void返回值方法:先于@RequestMapping修饰的方法调用,可以把请求参数赋值给对应变量(初始化)

      修饰有返回值的方法:把返回值存入Model中

      修饰参数:把Model中的对应值传入对应参数

        

      

  • 相关阅读:
    DiskFileUpload上传与Spring的CommonsMultipartResolver上传对比
    ajax请求jesery接口无法获取参数的问题解决方案
    java乱码问题总结
    indiGolog的安装
    hadoop启动步骤
    ubuntu修改默认jdk
    ubuntu 安装 ssh
    rabbitmq五种模式详解(含实现代码)
    终于可以像使用 Docker 一样丝滑地使用 Containerd 了
    Docker安装Nacos动态服务发现、配置和服务管理平台
  • 原文地址:https://www.cnblogs.com/zawjdbb/p/7532895.html
Copyright © 2020-2023  润新知