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

来源:2-4 统一异常处理(上)

慕雪1014944

2017-10-28 04:44

我在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回答

  • 慕的地2067727
    2017-10-29 11:01:53
    已采纳

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

    慕雪1014...

    非常感谢!

    2017-11-01 22:06:14

    共 1 条回复 >

Spring Boot进阶之Web进阶

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

104039 学习 · 393 问题

查看课程

相似问题