一、注释
@RequestParam
@RequestBody
@PathVariable
@DateTimeFormat
@NumberFormat
二、获取参数
1、在无注解下获取参数
在无注解的情况下,springMVC也可以自动获取参数,其实很多人不注意这个细节。慢慢的就会糊里糊涂的用。其实,在无注解的情况下,只要参数名称和HTTP请求中的完全一致,就可以自动获取。另外,这个参数是允许为空的。
例子就不写了,只要名一样就行。
注 1.在无注解下获取参数,要求参数名称和HTTP请求参数名称一致.会自动获取。
注 2.在无注解下获取数组参数,用逗号分割,后台接收。
http://127.0.0.1:8080/app?intAy= 1,2,3&longAy=4,5,6&strAy=str,str2,str3
public ModelAndView func1(
int[] intAy,
long[] longAy,
string [] stringAy,
){
......
return mv;
}
2、@RequestParam获取参数
这个使用也很简单,类似自动获取。这里相当于使用@requestParam进行了人工标记。
注:使用@RequestParam 获取参数[在方法参数之前添加注释]
public ModelAndView func1(
@RequestParam("int_v") Integer intv,
@RequestParam("long_v") Long longv,
@RequestParam("string_v") String stringv,
){
String string_G =stringv;
Integer int_G =intv;
Long long_v=longv;
......
return mv;
}
3、获取json参数
有个前提:页面上送时,需要设置json格式。
@RequestBody [注释参数] 意味着它将接收前端提交的 JSON 请求体,而在 JSON 请求体与 User 类之间的属性名称是保持一致的,这样 Spring MVC 就会通过这层映射关系将 JSON 请求体转换为 User 对象。
public Map<String,Object> vaildUser( @RequestBody User user)
注:@RequestBody使用:
(1)@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。
(2)通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean(user[name,pwd])上,当然,也可以将其分别绑定到对应的字符串上。
login(@requestBody String userName,@requestBody String pwd){}
4、通过URL传递参数
注 1.@GetMapping 指定一个 URL,然后用 {...}来标明参数的位置和名称。
注 2.@PathVariable 配置的字符串为 id,它对应URL 的参数声明。这样 Spring 就知道如何从 URL 中获取参数。于是请求 http://localhost:8080/user/1。
注:@PathVariable使用: 将 URL 中占位符参数绑定到控制器处理方法的入参中
@RequestMapping("/delete/{id}")
delete(@PathVariable("id") Long id)
5、获取格式化参数
@DateTimeFormat(iso=DateTimeFormat.ISO.DATE) Date date, 后台的实体类可以把它转换成Date类型
@NumberFormat(pattern = "#,###.##") Double number 后台的实体类可以把它转换成Double类型
在 Spring Boot 中,日期参数的格式化也可以不使用@DateTimeFormat ,而 只在配置文件application.properties 中加入如下配置项即可 :
spring.mvc.date-format=yyyy-MM-dd
本文详细介绍了在Spring MVC Boot中如何获取不同类型的参数,包括无注解获取、@RequestParam、@RequestBody、@PathVariable以及格式化参数如日期和数字。通过实例解析了各种方式的使用场景和注意事项。
224

被折叠的 条评论
为什么被折叠?



