如何在 JSF 中为标准验证器设置自定义消息?

Posted

技术标签:

【中文标题】如何在 JSF 中为标准验证器设置自定义消息?【英文标题】:How to set a custom message for a standard validator in JSF? 【发布时间】:2011-09-09 04:35:01 【问题描述】:

我为一个 int 变量创建了一个简单的输入字段。我想向它添加验证,但是我认为没有必要为它创建自己的验证器,因为我唯一需要的是避免负值和数字以外的字符。 所以这就是我所做的:

<h:inputText id="price" value="#placeAddControler.price">
            <f:validateLongRange minimum="0"/>
</h:inputText>          
<h:outputText value="€" />
<br/>
<span style="color: red;"><b><h:message for="price"
showDetail="true" /></b></span>

当我尝试它的工作原理时,这是负值的结果:

这是字符的结果:

在我的项目中,我可以在哪里自定义这些验证消息的文本?

【问题讨论】:

【参考方案1】:

要更改这些值,您基本上必须定义自己的资源文件,覆盖您想要自定义消息的属性并将其注册到 web.xml。 This link 似乎解释得很好,所以我将其包含在内,而不是尝试重写内容。

对于更简单的解决方案,并且您是 JSF 2,您还可以使用 inputText 组件的这些属性:

requiredMessage="I am a custom message"
converterMessage="I am a custom message"
validatorMessage="I am a custom message"

这将覆盖验证器本身吐出的任何消息。

但我更喜欢资源包,因为它可以提高整个应用程序中用户可见错误消息的一致性。

【讨论】:

【参考方案2】:

您可以注册消息包并自定义这些消息。这是一个相当不错的示例/教程:

http://www.mkyong.com/jsf2/customize-validation-error-message-in-jsf-2-0/

【讨论】:

以上是关于如何在 JSF 中为标准验证器设置自定义消息?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot 应用程序中为码头服务器自定义带有自定义正文内容的 ErrorHandler 类

jsf 自定义所有错误信息

如何在 Laravel 5.5 中为选定的请求类设置自定义响应

JSF:在没有自定义消息的情况下从验证消息中删除客户端 ID(标签、组件 ID)

如何在 JSF 中执行验证,如何在 JSF 中创建自定义验证器

如何在 Yii 中为自定义 CActiveRecord 属性设置验证规则?