gpt4 book ai didi

jsf-2 - 在 JSF 中带注释的验证器生成的错误消息中包含字段名称

转载 作者:行者123 更新时间:2023-12-01 12:57:27 25 4
gpt4 key购买 nike

使用类似javax.validation.constraints.Size 的bean 验证非常方便在我的 Java 代码中,例如:

@Size(min=1,max=30)protected String custName;

而不是 .xhtml 页面中嵌入的更冗长的等效内容,例如:

<f:validateLength minimum="1" maximum="30" />

我遇到的问题是我无法让字段名称出现在错误消息中。我可以通过将以下条目添加到源目录根目录中的 ValidationMessages.properties 来自定义消息:

javax.validation.constraints.Size.message={0} value is too long.

但没有值替代 {0}。结果是,虽然带注释的验证器适用于我可以在其中包含单独的 <p:message /> 的简单页面。对于每个表单字段,它们对于更复杂(例如选项卡式)的表单效果不佳,我需要在页面顶部对消息进行分组。是否有任何解决方法,或者我唯一合理的选择是使用 JSF 验证器?

最佳答案

{0}label 表示 View 端输入组件的属性,未指定时默认为客户端ID。

例如

<h:inputText value="#{bean.customer.name}" label="Customer name">

您还需要覆盖 Bean 验证程序消息的 JSF 默认格式。您需要按照 <message-bundle> 中的规定将以下条目添加到 JSF 消息包中的 faces-config.xml :

javax.faces.validator.BeanValidator.MESSAGE = {1} {0}

在此特定条目中,{1}将是 JSF 输入组件的标签和 {0}将是 bean 验证器的消息。

关于jsf-2 - 在 JSF 中带注释的验证器生成的错误消息中包含字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8978824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com