Spring -整数属性的验证

zvms9eto  于 2022-11-21  发布在  Spring
关注(0)|答案(2)|浏览(163)

我有实体:

public class User{
   @NotNull
   private Integer age;
}

在静止控制器中:

@RestController
public UserController {
 ..... 
}

我有BindingResult,但字段年龄Spring无法验证。您能告诉我原因吗?
感谢您的回答。

xzabzqsa

xzabzqsa1#

如果您发布的内容类似于JSON数据,表示User类,您可以使用注解@Valid和@RequestBody来触发注解的验证,例如age属性中的@NotNull。然后使用BindingResult检查实体/数据是否有错误,并进行相应的处理。

@RestController
public UserController {

    @RequestMapping(method = RequestMethod.POST)
    public ResponseEntity<?> create(@Valid @RequestBody User user, BindingResult bindingResult) {
        if(bindingResult.hasErrors()) {
            // handle errors
        }
        else {
            // entity/date is valid
        }
    }
}

我会确保您的User类也有@Entity注解。

@Entity
public class User {
    @NotNull
    @Min(18)
    private Integer age;

    public Integer getAge() { return age; }

    public setAge(Integer age) { this.age = age; }
}

您可能希望设置输出/日志SQL的属性,以便可以看到向User表添加了适当的约束。
希望这能帮上忙!

e5nqia27

e5nqia272#

如果需要,可以指定默认消息
@NotNull(“消息”:“年龄:需要正数值”)
@最小值(值=18,消息=“年龄:正数,要求最小值为18”)
请使用dto的

相关问题