【问题标题】:@Valid annotation - This annotation disallowed for this location@Valid 注释 - 此位置不允许使用此注释
【发布时间】:2013-04-29 17:08:06
【问题描述】:

我的控制器方法具有 @Valid 注释来强制执行 JSR303 Bean 验证。

但是当我只是给@Valid 是节目”

This annotation @Valid is disallowed for this location

我可以通过提供完整的包路径@javax.validation.Valid 来摆脱这个问题。如果我使用它,它不会显示上述消息。

我的问题是,是否有任何冲突迫使我提供完整的包名? 还是缺少一些罐子?

如果@Valid 验证工作正常,我不会问这个问题。但它也不起作用,尽管没有编译或运行时错误。它只是没有触发。

我在另一个帖子中发布了这个问题here

【问题讨论】:

    标签: java spring-mvc annotations bean-validation


    【解决方案1】:

    看看你的进口。我猜你只是使用@Valid 时没有导入javax.validation.Valid

    【讨论】:

    • 嗯.. 这对我来说可能听起来很愚蠢你是对的。但是,我从来没有手写过导入语句。当出现错误时,我将鼠标悬停在它上面,eclipse 显示所需的导入和繁荣,我完成了。但这个看起来像一个特例。
    • @KevinRave 我当然认为这是一个自动导入 :) 你有没有机会从其他帖子检查你的 POJO 的导入?
    【解决方案2】:

    您需要为@Valid@Size 导入以下包才能工作:

    import javax.validation.Valid;
    import javax.validation.constraints.Size;
    

    下面给出了工作所需的必要罐子:

    • 同学-1.0.0.jar
    • hibernate-validator-5.1.3.Final.jar
    • javax.el-2.2.4.jar
    • javax.el-api-2.2.4.jar
    • jboss-logging-3.1.3.GA.jar
    • validation-api-1.1.0.Final.ja

    以上jar可以从http://hibernate.org/validator/下载

    【讨论】:

    • hibernate-validator 文件包含在 dist 文件夹和 dist>lib> 中的其他文件中
    猜你喜欢
    • 2013-07-11
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多