ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringMVC获取请求参数

2021-12-13 21:03:08  阅读:106  来源: 互联网

标签:控制器 请求 形参 SpringMVC value 传输 参数


1.通过ServletAPI获取

  将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象

  

 

 

 

 

  结果:

 

 

 

 

 2.通过控制器方法的形参获取请求参数

在控制器方法的形参位置,设置和请求形参同名的形参,当浏览器发送请求,匹配到请求映射时,在DispatcherServlet中就会将请求参数赋值给相应的形参

  

 

 

        

 

 

   结果:

  

 

 

   注意:

    若请求所传输的请求参数中有多个同名的请求参数,此时可以在控制器方法的形参中设置字符串数组或者字符串类型的形参接收此请求参数

    若使用字符串数组类型的形参,此参数的数组中包含了每一个数据     若使用字符串类型的形参,此参数的值为每个数据中间使用逗号拼接的结果   举例:     

 

 3.@RequestParam

  @RequestParam是将请求参数和控制器方法的形参创建映射关系

  @RequestParam注解一共有三个属性:    

    value:指定为形参赋值的请求参数的参数名

      简写:

  

      详细:

    

    required:设置是否必须传输此请求参数,默认值为true

 

     required:设置为false时,不需要必须传输value所指定的请求参数,若没有传输,则注解所标识的形参的值为null

     required:设置为true时,必须传输value所指定的请求参数,否则报错!!

      (若设置为true时,则当前请求必须传输value所指定的请求参数,若没有传输该请求参数,且没有设置                defaultValue属性,则页面报错400:Required String parameter ‘xxx’ is not present;若设置为false,则当            前请求不是必须传输value所指定的请求参数,若没有传输,则注解所标识的形参的值为null)

    defaultValue:不管required属性值为true或false,当value所指定的请求参数没有传输或传输的值         为空字符串时,则使用默认值为形参赋值         

     当某些参数传不传值都不是必须时,如果没有传值或传入空字符串时则表示为dafeultValue设置的值!!!!(设置空形参的默认值)

 

4.@RequestHeader

  @RequestHeader是将请求头信息和控制器方法的形参创建映射关系

  @RequesrHeader注解一共有三个属性:value,required,defaultValue,用法同@RequestParam

  

 

 

5.@CookieValue

  @CookieValue是将cookie数据和控制器方法的形参创建映射关系   @CookieValue注解一共有三个属性:value、required、defaultValue,用法同@RequestParam   

 

 

6.通过POJO(实体类)获取请求参数

  1.创建实体类对象(实体类对象属性要与提交信息保持一致)

  2.创建控制器方法

  

  3.编写页面:

  

 

 

   4.查看结果:

  

 

 sex中出现乱码问题:解决方法在下面

 

7.解决获取请求参数乱码问题

  1).GET请求乱码,在TOMCAT的conf目录下找的server.xml中按照图片添加 URIEncoding="UFT-8"即可

  

 

 

  2).在POST请求下需要在web.xml文件中进行配置SpringMVC编码过滤器

 

 

标签:控制器,请求,形参,SpringMVC,value,传输,参数
来源: https://www.cnblogs.com/Aikz/p/15685205.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有