SpringBoot(或SpringMVC)的各种参数绑定⽅式总结
后端开发中会遇到很多前后端参数传递的内容,⼯作时遇到各种各样的参数传递⽅式,觉得⽐较混乱,所以花了⼀点时间整理总结下来,以便后续开发中能够快速地到合适的参数绑定⽅式。
本次主要分为三个模块,⼀个是基本模式,⼀个是json模式,⼀个是通过⾃定义的⼯具类处理参数绑定模式。
⼀、基本模式
1、基本数据类型(以int为例)
在controller中写⼀个int参数绑定的⽅法
@GetMapping("/getInt")
public BaseResponse getInt(int id){
BaseResponse baseResponse = new BaseResponse();
try{
int param = id;
baseResponse.setCode(BaseResponse.RESPONSE_SUCCESS_CODE);
baseResponse.setMsg("获取参数成功");
baseResponse.setData(param);
}catch (Exception e){
baseResponse.setCode(BaseResponse.RESPONSE_ERROR_CODE);
baseResponse.setMsg("获取参数失败");
}finally {
return baseResponse;
}
}
总结:1)⽤基本类型进⾏参数绑定时,就必须传⼊key值,且value值必须是声明的基本类型,如果页⾯提交的数据为null或“”的话会出现数据转换异常,因此最好使⽤包装类型参数
2)前端的参数名和controller的参数名保持⼀致时就能完成数据绑定,不⼀致可以使⽤@RequestParam
2、包装类型参数绑定(推荐使⽤)
在controller中写多个包装类型参数绑定的⽅法
@GetMapping("/getUser")
public BaseResponse getUser(String name,Integer age){
BaseResponse baseResponse = new BaseResponse();
try{
String paramName = name;
Integer paramAge = age;
Map<String,Object> result = new HashMap<>();
result.put("name:",paramName);
result.put("age:",paramAge);
baseResponse.setCode(BaseResponse.RESPONSE_SUCCESS_CODE);
baseResponse.setMsg("获取参数成功");
baseResponse.setData(result);
}catch (Exception e){
baseResponse.setCode(BaseResponse.RESPONSE_ERROR_CODE);
baseResponse.setMsg("获取参数失败");
}finally {
return baseResponse;
}
}json值的类型有哪些
总结:1)包装类型绑定参数时和基本数据类型⼀样,传的key值要和⾥⾯绑定的参数名⼀致 2)包装类型绑定参数时参数的值可以不传为null,也可以为空
3、⾃定义对象类型参数绑定
⾃定义实体类
在controller中设置User类型参数
总结:1)只要将对象的属性名和前端的input的参数名⼀致即可4、⾃定义复合对象类型参数绑定
增加另⼀级对象的实体类
在controller层代码和上⾯⼀样
总结:1)⾃定义复合对象类型和⾃定义对象类型是⼀样的⽤法
2)⾃定义复合对象类型前端input的参数名要使⽤“属性名(对象类型的属性).属性名"来命名5、List参数绑定
List需要绑定在对象上,⽽不能直接写在Controller⽅法的参数中
实体类定义List类型参数
controller使⽤定义了List类型属性的类型的参数
总结:1)list不可以直接写在controller的⽅法参数中,需要绑定在类中
2)前端的表单提交需要指定list的下标,命名规则为“controller参数名[i].属性名”,有点和⾃定义复合对象类型的命名规则6、Map参数绑定
Map也需要绑定在对象上,⽽不能直接写在Controller⽅法的参数中
Map实体类
在这⾥我只能通过json格式传送,没有到合适的办法,后续到再更新
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论