• @RequestParam详解


    @RequestParam主要用于将请求参数区域的数据映射到控制层方法的参数上

    首先我们需要知道@RequestParam注解主要有哪些参数

    1。value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。比如上图中第一个参数如果不设置value="page",则前端传入的参数名必须为pageNum,否则在后台接口中pageNum将接收不到对应的数据

    2。required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。

    3。defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值。注意默认值可以使用SpEL表达式,如"#{systemProperties['java.vm.version']}"

    如果在请求中传入多个同名参数,比如:url?userName=zhl&userName=holley时怎么办?

    其实此时传入的数据格式是:"zhl,holley",即多个数据之间使用逗号分隔开,在后台接口中可以使用数组或者list类型的变量来接收:

    public String requestparam8(@RequestParam(value="userName") String []  userNames) 

    或者

    public String requestparam8(@RequestParam(value="list") List<String> list)

    @PathVariable绑定uri模板变量值:通过@PathVariable可以绑定占位符参数到方法参数中,例如:

    如果请求为"url/info/16",则spring会自动将16绑定到通过@PathVariable注解的同名变量uid上

    @CookieValue绑定Cookie数据值

    public String test(@CookieValue(value="SESSIONID", defaultValue="") String sessionId) 

    自动将SESSIONID的值绑定到字符串sessionId上,如果Cookie中没有sessionId时则默认为空

    传入数据类型也可以是javax.servlet.http.Cookie类型
    public String test2(@CookieValue(value="SESSIONID", defaultValue="") Cookie sessionId)
    
    

    @RequestHeader绑定请求头数据

    
    
    @RequestMapping(value="/header")  
    public String test(  
           @RequestHeader("User-Agent") String userAgent,  
           @RequestHeader(value="Accept") String[] accepts)
    
    

    如上配置将自动将请求头中的“User-Agent"值绑定到userAgent上,将"Accept"的值绑定到accepts上

    @ModelAttribute绑定请求参数到命令对象

    @ModelAttribute具有三个作用

    1.绑定请求到命令对象:放在后台接口方法(控制层)的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑定流程,而且自动暴露为模型数据用于视图页面展示时使用

    2.暴露表单引用对象为模型数据:放在处理器的一般方法(非后台接口方法)上时,是为表单准备要展示的表单引用对象,如注册时需要选择所在的城市等,而且在执行后台接口方法之前,自动添加到模型对象中,用于视图页面展示时使用

    3.暴露@RequestMapping方法返回值为模型数据:放在后台接口方法的返回值上时,世保禄处理方法的返回值为模型数据,用于视图页面的展示时使用

    一、绑定请求参数到命令对象

    如用户登录,我们需要捕获用户登录的请求参数(用户名、密码)并封装为用户对象,此时我们可以使用@ModelAttribute绑定多个请求参数到我们的命令对象。

    public String test1(@ModelAttribute("user") UserModel user)

    注解@ModelAttribute("user"),它的作用是将该绑定的命令对象以“user”为名称添加到模型对象中供视图页面展示使用。我们此时可以在视图页面使用${user.username}来获取绑定的命令对象的属性。

    绑定请求参数到命令对象支持对象图导航式的绑定,如请求参数包含“?username=zhang&password=123&workInfo.city=bj”自动绑定到user中的workInfo属性的city属性中。

    原文:https://www.cnblogs.com/wangchuanfu/p/5913310.html

  • 相关阅读:
    Account group in ERP and its mapping relationship with CRM partner group
    错误消息Number not in interval XXX when downloading
    错误消息Form of address 0001 not designated for organization
    Algorithm类介绍(core)
    梯度下降与随机梯度下降
    反思
    绘图: matplotlib核心剖析
    ORB
    SIFT
    Harris角点
  • 原文地址:https://www.cnblogs.com/zhlblogs/p/9553491.html
Copyright © 2020-2023  润新知