【问题标题】:How validate domain object in controller input filled by Spring Data?如何验证由 Spring Data 填充的控制器输入中的域对象?
【发布时间】:2019-09-27 18:21:50
【问题描述】:

例如我有:

@PostMapping("/person/{id}")
@ResponseBody
public boolean isAdmin(@PathVariable("id") Person person) {
  return person != null && person.isAdmin();
}

如何使用验证获得相同的结果?
这对我不起作用,但我会查找类似的东西,而无需手动检查方法体。有办法吗?

@PostMapping("/person/{id}")
@ResponseBody
public boolean isAdmin(@PathVariable("id") @NotNull Person person) {
  return person.isAdmin();
}

【问题讨论】:

  • 首先你能把对象保存在PathVariable吗?如果是这样,您的 post http 请求会是什么样子?

标签: java spring validation spring-mvc spring-data-jpa


【解决方案1】:

您需要使用 javax.validation.Valid 并向您的 Person pojo 添加约束:javax.validation.constraints.Email/NotBlank/NotNull;

public class Person {

    @NotNull
    private Long id;
    /* here getters and setters...*/
}

在您的控制器中:

@PostMapping("/person/{id}")
@ResponseBody
public boolean isAdmin(@Valid @RequestBody Person person) {
  return person.isAdmin();
}

see my github

【讨论】:

    猜你喜欢
    • 2013-02-09
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多