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
@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); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)