springmvc接收参数的n种方式

请求体

	1.请求体可以接收任何类型的参数,string,对象,map,list的
	2.对于对象和map,当我们知道请求体的内容,并且可以准备一个实体类去接收时可以用对象接收,
	  当我们不知道请求体的内容时,可以用map接收,究其原因是json可以识别对象,map,list

参数列表,请求行后面带的参数

	1.直接用对应的数据类型接收,参数名和前端一样即可
	2.用requestParam(不能带value值), 它的类型也可以 是map,但是是map的时候不能带value值,同样有了map就不能有其他参数类型来接收了
	3.用对象,或者map,用了对象和map就不能再有其他的param接收了,相当将前端的参数,封装到对象或者map中去

requestParam() Map 和 Map 和 requestBody Map的对比

	1.请求体就相当于对象,只是将对象换成了map,因为都是json形式的都可以
	2.param Map 和 Map就相当于,用对象接收参数列表。只是把对象换成了map,而加不加param无所谓,就单作用对象接收参数列表即可
	3.用了对象或map来接收参数列表后,就不能有其他类型的param了,前端所有的参数都会封装进对象或map中去的

什么时候用map来接收(param或者请求体)

	当我们不知道参数列表的类型,或者请求体的具体类型,无法提供具体的实体类去接收的时候
	或者,如果要准备实体类的话,我们可能要准备很多实体类,无法通用,要通用就用map接收

requestParam 的value值写不写的问题

	1.一般写微服务时,不写value 的话,它的作用跟不加param一样,只要参数名和前端一样即可,但是一般推荐加上,但是微服务调用时,调用client接口处的接口,一定要加上,value值没有要求,最好和参数名一样

requestParam 或 requestBody Map什么时候用

不想或无法提供固定的实体类时就用map,因为实体类和map的作用都是一样的
在param时 实体类和map都是封装参数列表
在requestBody时,map和对象都是json格式的

注意在controller层最好不用map来接收,主要抬不规范了,不知你到你要干嘛,也不知道具体的map里面有哪些key

猜你喜欢

转载自blog.csdn.net/Chen4852010/article/details/120693723