为了账号安全,请及时绑定邮箱和手机立即绑定

无法显示自己定义的错误信息(金额必填)

我在Girl实体类里定义了@NotNull,但是最后显示在客户端不是我在message中填的而是一段错误代码

{
  "code": 1,
  "msg": "Failed to convert property value of type 'java.lang.String' to required type 'double' for property 'money'; nested exception is java.lang.NumberFormatException: empty String",
  "data": null
}

我的Girl对应出的代码如下:

@Id
@GeneratedValue
private Integer id;

@NotBlank(message = "这个字段必须传")
private String cupSize;

@Min(value = 18, message = "未成年少女禁止入内")
private Integer age;

@NotNull(message = "金额必穿")
private Double money;

Controller处对应代码:

@PostMapping("/girls")
    public Result<Girl> girlAdd(@Valid Girl girl, BindingResult bindingResult){
            Result result = new Result();
        if (bindingResult.hasErrors()){
            result.setCode(1);
            result.setMsg(bindingResult.getFieldError().getDefaultMessage());
            return result;
        }
//        girl.setCupSize(girl.getCupSize());
//        girl.setAge(girl.getAge());
        //上述两行实际上是不用加的  传值时就已经设值了,在Girl实体类里有Getter,Setter方法
        result.setCode(0);
        result.setMsg("成功");
        result.setData(girlRepository.save(girl));

        return result;
    }

我试过,如果cupSize不填,他正常报错,但是金额不填就不是这么回事了。百思不得其解

正在回答

1 回答

在Controller打个断点看一下money是什么数据,还有就是NotBlank 与NotEmpty  NotNull 进行区别   你先打个断点看一下money是null 还是“”空串

0 回复 有任何疑惑可以回复我~
#1

慕雪1014944 提问者

非常感谢!
2017-11-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Spring Boot进阶之Web进阶
  • 参与学习       103835    人
  • 解答问题       393    个

《2小时学习Spring Boot》之进阶教程,针对Web方面的相关技巧

进入课程

无法显示自己定义的错误信息(金额必填)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信