后端开发中会遇到很多前后端参数传递的内容,工作时遇到各种各样的参数传递方式,觉得比较混乱,所以花了一点时间整理总结下来,以便后续开发中能够快速地找到合适的参数绑定方式。
本次主要分为三个模块,一个是基本模式,一个是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;
}
}
总结:1)包装类型绑定参数时和基本数据类型一样,传的key值要和里面绑定的参数名一致
2)包装类型绑定参数时参数的值可以不传为null,也可以为空
3、自定义对象类型参数绑定
自定义实体类
在controller中设置User类型参数