SpringBoot POST请求接收多个参数值为null

SpringBoot POST请求接收多个参数值为null,第1张

SpringBoot POST请求接收多个参数值为null 问题描述:

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,前面加上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);
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5686060.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存