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

2022-09-04 07:06:43

我为 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>

当我尝试它是如何工作的时,这是负值的结果:enter image description here

这是字符的结果:

enter image description here

在我的项目中的什么位置可以自定义这些验证消息的文本?


答案 1

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

对于更简单的解决方案,并且您是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/


推荐