【问题标题】:@Valid, @NotEmpty not working in my spring application@Valid,@NotEmpty 在我的 Spring 应用程序中不起作用
【发布时间】:2021-05-21 13:31:47
【问题描述】:

我创建了一个具有@Valid@NotEmpty 注释的类。我没有使用该类来传递请求正文,但稍后在我的应用程序中创建它的对象,然后注释不起作用。 请求正文:

String jsonData;

我正在使用 gson 库将此 jsonData 转换为 Json 对象

JSON 对象类 JsonObject.class

@NotEmpty
@Valid
List<JsonObject> list;
public static class innerClass {
  @NotEmpty
  private String name;
  @NotEmpty
  private int age;
}

gson的实现:

JsonObject json = gson.fromJson(requestBody.getJsonData(), JsonObject.class); //this should give error if I pass age or name as empty but it's not showing error 

如果我按如下方式传递请求正文,它应该会抛出错误,但不会。


{"jsonData":"{}"}

【问题讨论】:

  • 为什么你认为fromJson 应该处理验证并抛出验证错误?反序列化它然后验证它。 Spring MVC 完全一样。就是这样。
  • fromJson() 不是只做反序列化吗?
  • 这就是我所说的。让 fromJson 做验证,即 JSR-303,是个坏主意。

标签: java spring spring-boot gson


【解决方案1】:

请添加依赖spring-boot-starter-validation

 <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-validation</artifactId>
   <version>2.4.0</version>
</dependency>

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    相关资源
    最近更新 更多