SpringBoot POST请求接收多个参数值为null
问题描述:SpringBoot接口使用Post请求接收前端的JSON数据写了多个参数,无论怎么写获取到的数据都是null$.ajax({url: "login4",param: JSON.stringify({"name": "name","age
·
问题描述:
SpringBoot接口使用Post请求接收前端的JSON数据写了多个参数,无论怎么写获取到的数据都是null
$.ajax({
url: "login4",
param: JSON.stringify({
"name": "name",
"age": 10
}),
type: "post",
dataType: "json",
success: function (data) {
},
error: function (data) {
}
});
@PostMapping("login4")
public void login4(String name, Integer age){
System.out.println("login3");
System.out.println(name + " -- " + age);
}
原因分析:
POST请求接收JSON数据时使用简单类型(Integer、String)等不能自动填充数据,必须要封装成实体类或者使用Map接收,而且使用Map接收时还要注明泛型。
解决方案:
类似于以下这种方式,封装一个实体类(实体类的属性名要与前端请求参数对应)或使用Map<String,Object>,前面加上RequestBody注解就能获取到了
@RequestMapping("/saveGrAuditLog")
public void auditUploads(@RequestBody AuditRequestEntity auditRequestEntity, HttpServletRequest request){
WriteLogParam writeLogParam = new WriteLogParam();
writeLogParam.setNote(auditRequestEntity.getNote());
writeLogParam.setOpterationType(auditRequestEntity.getOpterationType());
writeLogParam.setOptName(auditRequestEntity.getOptName());
writeLogParam.setResourceId(auditRequestEntity.getResourceId());
writeLogParam.setResourceName(auditRequestEntity.getResourceName());
log.info("******params >> "+ JSONUtil.toJsonStr(writeLogParam));
AuditLogRequestTwo.addAuditNew(request,auditRequestEntity.getParams(),auditRequestEntity.getOptUrl(),auditRequestEntity.getResult(),writeLogParam);
}
更多推荐
已为社区贡献2条内容
所有评论(0)