SpringMVC参数接收与数据绑定

一. URL Maping(URL映射)

主要作用: 主要是将URL与Controller方法绑定!

通过将URL与方法绑定,SpringMVC便可以通过Tomcat对外暴露服务!

1. URL Mapping注解

@ RequestMapping

通用绑定
通常放在类上,用于URL的全局设置,比如RequestMapping(“/um”)
作用在方法上时,该方法不再区分get/post请求(不推荐使用)

@GetMapping

绑定Get请求

@PostMapping

绑定Post请求

2. 接收请求参数

接收请求参数的常用方法有两种:

第一种,使用Controller方法参数接收;

image.png
注意:

  1. Controller方法中参数的名称,与form表达提交的name名称是一样的;
  2. Spring MVC运行类型转换

get请求也可以通过Controller方法进行传参
image.png

@RequestParam 的作用: 保证前端传参名称与此处接收参数名称一致, 其参数为原始映射的参数 作为请求的参数“manger_name”在运行时,被动态注入到managerName中 此时只要求@RequestParam中的参数与前端原始映射的参数名称一致,对Java中参数不做要求

即前端访问的路径应该为:

http://localhost/g?manger_name=xiaohui

第二种,使用Java Bean接收数据(请求参数)

post请求
image.png
Controller方法中的参数User为实体对象,该对象的变量与post请求中的名称须一致!
image.pngimage.png

3. 接收表单复合数据

① 利用数组或List接收请求中的复合数据;

image.png
image.png
注:

前端form表单中的name与后端Controller方法中的参数名一致

数组不推荐,极力推荐使用list集合接收前端复合数据
image.png
注意:

在使用list集合接收复合参数时,集合前必须使用@RequestParam注解 只有增加该注解后,Spring MVC才知道原来请求中包含的复合数据要被转化为list集合

对于一组结构化的数据,通常会采用对象的方式(实体类)进行接收
image.png
image.png

② 利用@RequestParam 为参数设置默认值;

image.png
前端传递过来的参数如果为空,则后端使用时可能会出现异常?

通@RequestParam 来为参数设置默认值,则当其为空时,该参数的值为设置的默认值

③ 使用Map对象接收请求参数及注意事项

在接收复合数据时,Map是有缺陷的!

在接收的数据中,如果有复合数据时,Map是无法接收的!!!

image.png
注:同样的,RquestParam注解必须要有!

注:
URL绝对路径与相对路径
image.png

结论

在接收数据时,如果没有复合数据,则选择使用Map集合接收;
如果有复合数据时,则选择对象中的list集合接收!

4. 关联对象赋值

image.png
该表单对象两个关联类:
image.png
关联对象赋值就可以解决上面数据的接收问题,它是如何实现的呢?
image.png
注意:表单中的对象名(idcard)与实体类中对象名(idcard)一致!

5. 日期类型转换

image.png
使用注解DateTimeFormat(“yyyy-MM-dd”)
即可将前台传递过来的日期字符串转化为日期格式!
image.png

或者自己写一个日期转化类,同时让SpringMVC知道该类
注解和自定义类两者选其一即可!
image.png