如何在Spring中配置@Valid上的直接字段访问?

2024-05-15

我怎么知道spring-web无需使用 getter/setter 即可验证我的 dto?

@PostMapping(path = "/test")
public void test(@Valid @RequestBody WebDTO dto) {

}

public class WebDTO {
   @Valid //triggers nested validation
   private List<Person> persons;

   //getter+setter for person

   @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
   public static class Person {
         @NotBlank
         public String name;
         public int age;
   }
}

Result:

"java.lang.IllegalStateException","message":"JSR-303 validated property 
    'persons[0].name' does not have a corresponding accessor for Spring data 
    binding - check your DataBinder's configuration (bean property versus direct field access)"}

特殊要求:我还想补充@AssertTrue在布尔 getter 上提供跨域验证,例如:

    @AssertTrue
    @XmlTransient
    @JsonIgnore
    public boolean isNameValid() {
        //...
    }

您必须配置 Spring DataBinder 以使用直接字段访问。

@ControllerAdvice    
public class ControllerAdviceConfiguration {
    @InitBinder
    private void initDirectFieldAccess(DataBinder dataBinder) {
        dataBinder.initDirectFieldAccess();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Spring中配置@Valid上的直接字段访问? 的相关文章

随机推荐

  • 可插入错误处理策略[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有服务对象 服务 A 它有一些特定的重复异步任务 该服务对象还有一个监督对象 服务B 我想处理与服务 A 中特定任务相关的大部分错误
  • 如何使用 Perl 正则表达式匹配字符串末尾/开头处的空格或单词?

    我想找到与我的正则表达式匹配的序列 它们应该位于由空格包围的字符串中间 末尾或开头或者是字符串中唯一的东西 Example 我们假设序列 qwe45rty 就是我们正在寻找的 我希望能够对所有这些因素都抱有积极的态度 qwe45rty qw
  • V8 console.log 不打印

    我正在尝试将 v8 嵌入到我的应用程序中 我正在查看 V8 环境中包含的内容 duktape 不包含控制台实现 并且似乎 v8 确实包含一个实现 但是当我调用console log它不打印任何内容 而是只打印 undefined 我假设这是
  • 如何将 R 数据框中的多个字符列合并为单个列

    我正在处理人口普查数据 需要将四个字符列合并为一列 Example LOGRECNO STATE COUNTY TRACT BLOCK 60 01 001 021100 1053 61 01 001 021100 1054 62 01 00
  • 有人知道如何将 GMap Static JSON 转换为 HTML url?

    我已经从以下位置下载了示例样式的地图snazzymaps com http snazzymaps com 我尝试转换为类似的网址但我做得不好 我正在尝试改变下一个例子 Google 地图样式静态示例 http snazzymaps com
  • 如何使用 .NET 4 运行时运行 PowerShell?

    我正在更新管理一些 NET 程序集的 PowerShell 脚本 该脚本是为针对 NET 2 与 PowerShell 运行的框架版本相同 构建的程序集编写的 但现在需要使用 NET 4 程序集以及 NET 2 程序集 由于 NET 4 支
  • 在 ASP.net MVC 2.0 中使用 Url.Content

    我见过很多使用 Url Content 引用 javascript 的示例 形成 MVC 2 中的 MasterPages Scripts jquery 1 4 1 min js gt type text javascript gt 但在运
  • 条件移位:在 pandas 中使用多个条件从“当前行值”中减去“前一行值”

    我有以下数据框 Disease HeartRate State MonthStart MonthEnd Covid 89 Texas 2020 02 28 2020 03 31 Covid 91 Texas 2020 03 31 2020
  • cmake 生成 Xcode 项目 - 发布构建有效,但存档因链接器错误而失败

    使用 Xcode 6 3 1 CMake 3 2 2 我有一个与图书馆链接的项目 该库作为代码包含在 xcode project 中 经过编译 然后与主可执行文件链接 项目是用cmake生成的 CMakeLists txt 的一些摘录 ad
  • 在 MVVM 中设置可见性的最佳方法

    In my View我有三个对象 其中一个在任何给定时间都是可见的 在我的Model我有一个枚举来代表这三个状态 我应该如何实施我的ViewModel a 为每个对象的可见性创建一个布尔值 并将每个对象绑定到该布尔值 使用 bool gt
  • php动态创建子域的问题

    你好 我通过以下代码在 php 中创建子域 function subd host port ownername passw request sock fsockopen localhost 2082 if sock print Socket
  • 在 Java 中生成多个形状...?

    如何生成多种类型的形状 如星星 三角形等 我已经运行了代码 它编译并运行时只显示一颗星星 我想要大约 10 个 我应该使用什么函数在图形用户界面中生成多个形状 import java awt Color import java awt Gr
  • SVN 行结束样式

    当我尝试在 SVN 中提交文件时 它显示错误为 提交失败 详细信息如下 提交 svn 行结束样式不一致 检查目录 文件上的 svn 属性 如果您定义了 svn eol style 但您的文件包含不同的样式 Unix 与 DOS 则提交将失败
  • 获取设备中的当前用户ID

    如何使用设备获取控制器中的当前用户 ID 在我的控制器中我有这样的东西 def index me current user c User find me sheets c time sheets end 我收到一条错误消息 无法找到没有 I
  • 删除具有estimatedItemSize 的项目时 UICollectionView 单元格大小会调整

    我有一个简单的项目 其中的故事板仅包含一个UICollectionViewController 使用 Xcode 7 1 1 为 iOS 9 1 构建 class ViewController UICollectionViewControl
  • 如何将域添加到 aws 上的现有 SSL 证书

    我有一个与 Amazon Web Services 上的负载均衡器关联的 SSL 证书 我想在该证书上有一个额外的域 我的问题是 是否可以向 aws 上现有的 ssl 证书添加额外的域 我发现您可以在创建证书时添加其他名称 但我不知道如何使
  • Visual Studio:Xamarin - 启动 Android 模拟器时出错

    遇到的问题https dotnet microsoft com learn xamarin hello world tutorial devicesetup https dotnet microsoft com learn xamarin
  • 如何将整数列表发送到 Web api 2 get 请求?

    我正在尝试完成此任务 其中我需要将 id 整数 列表发送到 web api 2 get 请求 所以我找到了一些样本here https damienbod com 2014 08 22 web api 2 exploring paramet
  • 连锁函数未知次数

    我正在通过未知数量的步骤对元素的顶部 左侧 css 值进行动画处理 我使用以下代码来存储动画每个步骤所需的 css 值 paths left 300 top 161 left 402 然后我可以通过以下方式运行动画 element anim
  • 如何在Spring中配置@Valid上的直接字段访问?

    我怎么知道spring web无需使用 getter setter 即可验证我的 dto PostMapping path test public void test Valid RequestBody WebDTO dto public