springMVC的注解@RequestParam与@RequestBody

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springMVC的注解@RequestParam与@RequestBody相关的知识,希望对你有一定的参考价值。

参考技术A 简介

官方解释:

BeanUtils#isSimpleProperty的源码如下:

结论:在使用springMVC的时候,参数的类型为BeanUtils#isSimpleProperty认定为简单类型的,且不由任何其他参数解析器解析,都可以省略@RequestParam,示例1如下:

官方解释:

示例如下

官方解释:

示例如下:

官方解释:

示例如下:

示例如下:

测试1,使用postman 构造一个表单请求如下:

测试2,使用 @RequestParam 可以同时接收url路径以及请求body中的参数

示例如下:

测试:

简介:

官方解释:

注意:如果要与使用@Validated需要引入 hibernate-validator 或者 validation-api

示例如下:

@RequestParam 注解的使用——Spring系列知识学习笔记

一. 前言

在SpringMVC后台进行获取数据,一般是两种。

  1. request.getParameter(“参数名”)
  2. 用@RequestParam注解获取

下面讲解用法。

二. 参数名一致


springmvc会自动根据参数名字来注入,所以要名字一致,不然不会注入

/**
 * 后台代码
 */
@RequestMapping("/")
public String Demo1(@RequestParam String lid){
 
    System.out.println("值为:"+lid);
    return null;
}

/**
 * 前台页面
 */
<input type="text" name="lid" />  <!-- 这时输出为10 -->
 

/**
 * 输出界面
 */
值为:10

三. 参数名字不一致


参数名字不一致的话,需要在@RequestParam后面指定参数名字,才能为后面的参数进行赋值。

/**
 * 后台代码
 */
@RequestMapping("/")
public String Demo1(@RequestParam(name="lid") String id){
 
    System.out.println("值为:"+id);
    return null;
}

/**
 * 前台页面
 */
<input type="text" name="lid" />  <!-- 这时输出为10 -->


/**
 * 输出界面
 */
值为:10

四. 设置默认值


/**
 * 后台代码
 */
@RequestMapping("/")
public String Demo1(@RequestParam(name="lid",defaultValue="ste") String id){
 
    System.out.println("值为:"+id);
    return null;
}


/**
 * 无前台页面
 */


/**
 * 输出界面
 */
值为:ste

五. 注意事项


如果要@RequestParam为一个int型的数据传值,假如前端并未输入,那么将会为int型的数据赋值为null。显然,这是不允许的,直接报错:

/**
 * 后台代码
 */
@RequestMapping("/")
public String Demo1(@RequestParam(name="lid") int id){
 
    System.out.println("值为:"+id);
    return null;
}

/**
 * 前台页面
 */
<input type="text" name="lid" />  <!-- 这时输出为10 -->
 
/**
 * 输出界面
 */
值为:10

可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传。如:

// required=true,则参数必须要传
@RequestMapping("/")
public String Demo1(@RequestParam(name="lid",required=true) int id){
 
    System.out.println("值为:"+lid);
    return null;
}`

如果required为false,那么默认为参数赋值为null

以上是关于springMVC的注解@RequestParam与@RequestBody的主要内容,如果未能解决你的问题,请参考以下文章

springMVC的注解@RequestParam与@RequestBody

@RequestParam注解详细使用

SpringMVC 基于注解的Controller @RequestMapping @RequestParam

三SpringMVC注解—@RequestMapping与@RequestParam

@RequestParam 注解的使用

@RequestParam 注解的使用——Spring系列知识学习笔记