当前位置: 首页 > 知识库问答 >
问题:

如何在组合JSR-303注释中设置消息?

焦博实
2023-03-14

请看一个例子:

@Pattern(regexp="[0-9]*")
@Size(max =5)
@Documented
@Target({ANNOTATION_TYPE, METHOD, FIELD, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
@Constraint(validatedBy = {}) //do not want any programmatic validation
public @interface CustomAnnotation {
    String message() default "";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
    }
}

注释字段的示例:

@CustomAnnotation(message = "some important message")
private String field;

当字段违反@Pattern时,我从@Pattern而不是@CustomAnnotation获得错误消息。这是只显示@CustomAnnotation消息的方式吗?

共有1个答案

白越
2023-03-14

您需要将元注释@reportAssingeViolation添加到CustomConstraint定义中。这样,任何违反组合约束之一的行为都将被报告为单一违反组合约束。另请参见BV参考中的“约束合成”一节。

 类似资料:
  • 问题内容: 是否有可能在JSR 303-Jave Bean Validation中验证对象的集合,而该集合本身没有任何注释,但包含在其中的元素呢? 例如,由于第二个人的名字为空,这是否可能导致约束冲突: 问题答案: 是的,只需添加到集合中即可。 这是《 Hibernate验证程序参考》中的示例。 这是标准的JSR-303行为。参见规范的 3.1.3节。

  • 使用JSR-303注释在上下文启动时验证Springbean是否有一种简单的方法?我继承了一些将配置表示为JSR-303注释POJO的类。这些都是在对象层次结构中传递的,所以我一直在使用它们。 我可以想象定义bean来设置这样一个类的属性,然后在上下文启动时运行JSR-303验证器,以确保正确设置所有值。 请注意,我不是在问SpringMVC中绑定表单提交的验证问题。

  • 我有一个用JSR-303约束注释的数据传输对象,比如... 我试图使用注释处理来用属性丰富每个JSR-303约束,该属性的值将等于。 例如,使用上面的代码,字段注释的最终生成输出如下所示... 我想知道上述方法是否可行,或者我是否应该尝试其他方法(这可能更简单)。此外,如果可行的话,可以在上面的处理器的//todo部分中说明要实现什么。到目前为止我已经咨询了... http://today.jav

  • JSR 303@Valid注释可用于验证控制器方法的输入对象,如Mkyong上所示。通用域名格式 是否可以使用@Valid annotation来验证int和long[]等基元类型?如果是,怎么做? 下面是一个Spring MVC方法签名示例,需要验证参数是否大于0:

  • 问题内容: 我有如下测试: 具有以下输出: 但是,我希望注释可以被覆盖,并且不会出现警告。 有没有办法做到这一点? 编辑:我发现一个错误似乎与此有关,但我最终运行4.2.0,仍然得到上述行为。 问题答案: 实际上,JSR-303不支持覆盖验证注释。相反,子类中重写方法的注释将 累积 应用:从规范的3.3节开始:

  • 问题内容: 我刚刚开始测试JSR-303 Bean验证,并且想知道是否有可能。我们的应用程序中有一个用于所有String字段的默认正则表达式。如果我想使用bean验证来应用此功能,我想我需要在表单对象中注释每个字段。 一击是否可以将@Pattern应用于所有字符串(或某些字段)?我们正在WebLogic 10.3.4上使用Hibernate实现,并以JSF2.0为前端。验证应该独立于视图,因为我可