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

JSF2.0和JSR303验证之间的严重性映射

易俊友
2023-03-14
@NotNull()
@Min(value = 0)
@Max(value = 1000000)
private int kilometres;
<p:messages id="kilometresMessages" showDetail="true" closable="true" />
Minimum value: 0Minimum value: 0

你能帮帮我吗?

致以最诚挚的问候

共有1个答案

赫连飞沉
2023-03-14

在JSR303注释中存在一个可以使用的有效负载属性。

public final class Severity {

    public static class Error implements Payload {
    }

    public static class Warning implements Payload {
    }

    public static class Info implements Payload {
    }

    private Severity() {

    }
}

然后您可以定义JSR303 annlotation,如下所示

@NotNull()
@Min.List({
    @Min(value = 0, payload={Severity.Info.class}),
    @Min(value = -20, payload={Severity.Error.class})
})
@Max(value = 1000000)
private int kilometres;    

验证之后,相应的ConstraintVilvation对象包含有效负载。

Set<Class<? extends Payload>> payload = ConstraintViolation.getConstraintDescriptor().getPayload();
 类似资料:
  • 我想从我的应用程序中提取DTO以将它们作为jar提供给层应用程序。 但我使用了Bean验证,所以DTO使用自定义约束进行注释。这种自定义注释对验证实现具有依赖性(链接)。 因此,我的DTO模块依赖于注释,而注释依赖于验证器,验证器依赖于DAO,然后是完整的核心应用程序。 有没有办法打破这种依赖循环?提供DTO jar而不依赖(或只提供bean验证API)的良好实践是什么? 谢谢

  • 问题内容: 说我有以下简单的Java bean: JSR 303中是否存在一种机制来创建自定义验证器,以验证startDate必须在endDate之前的约束? 在我看来,这是一个常见的用例,但是我找不到这种多属性关系约束的任何示例。 问题答案: 我可以想到一些尝试的方法。 您可以使用适当的验证器创建类型本身的目标: 您可以将日期范围封装为一种类型,并验证以下内容: 您可以添加执行检查的简单属性:

  • 这可能是一个很难回答的问题,但是在很多教程和示例中,我看到这些注释的使用就好像它们做了同样的事情。 但是,我使用时遇到了一些限制(尤其是依赖注入等),我找不到解释差异的源,如果有人能给出一个大致的概述,说明什么时候使用这两个,我将非常感谢。

  • 我缺少一些真正基本的东西(与EAR或EAR配置中的类加载相关)。我不明白,为什么我的JSR303验证和Hibernate验证不是从EAR内部触发的...如果我创建一个新的战争项目,它就会触发。 我正在Weblogic Server10.3上用Maven、JSF2.0、Open-JPA、EJB3.0建立一个新项目。我使用maven原型创建了所有项目。我有一个最终的EAR构建,它的结构如下: 项目名称

  • 本文向大家介绍验证和确认之间的差异。,包括了验证和确认之间的差异。的使用技巧和注意事项,需要的朋友参考一下 众所周知,“验证”和“验证”这两个词的字面意思是:“验证”是验证某事物是否正确的过程,而“验证”是验证某事物的过程,在该过程中,用户使用一些输入和验证输出是否符合预期。在软件测试中,验证和验证都是V模型的一部分,在V模型中,基于需求规格说明文件开始开发和测试活动。 换句话说,我们可以说验证是

  • 我正在使用spring(4.2.0.RELEASE)、hibernate validator(5.2.1.Final)和validation api(1.1.0.Final)对后端应用程序进行JSR验证,配置如下:, 但是没有一个JSR303注释在我的应用程序中工作。 注意:在POJO类上添加了JSR303注释,在服务类(使用POJO)上添加了@Validated注释,还尝试在方法级别添加@Val