23

如何自定义验证失败时出现的验证消息?

这是我的代码:

<h:form>
    <p><h:inputText
           id="userNo"
           title="Type a number from 0 to 10:">
       <f:validateLongRange
           minimum="3"
           maximum="6"/>
       </h:inputText>

       <h:commandButton id="submit" value="Submit"
           action="response"/>
    </p>
    <h:message showSummary="true" showDetail="false"
        id="errors1"
        for="userNo"/>
</h:form>

目前消息如下所示:

j_idt10:userNo: Validation Error: Specified attribute is not between the expected values of 3 and 6. 

这不是特别用户友好。

4

3 回答 3

45

最简单的方法是在标签中设置validatorMessage="my custom message"属性。<h:inputText>

有关更高级的方法,请阅读这篇文章Customize validation error message in JSF 2.0

这里是对您可以在 JSF 2.0.x 中覆盖的所有可用消息的完整参考

于 2012-05-02T10:23:36.657 回答
15

除了 Daniel 的回答之外,您始终可以使用label输入组件的属性来j_idt10:userNo:从错误消息中删除 client-id ( )。

例如与

<h:inputText id="userNo" title="Type a number from 0 to 10:"
             label="User number">
  <f:validateLongRange
           minimum="3"
           maximum="6"/>
</h:inputText>

将产生:

用户号:验证错误:指定的属性不在预期值 3 和 6 之间。

label 属性也可以是一个 el 表达式,以动态更改这部分错误消息。

于 2012-05-02T10:42:42.337 回答
8

您可以使用输入文本的 validatorMessage 属性。将 requiredMessage 属性用于所需消息,它与验证器消息不同。

<h:input text required ="true" validatorMessage="Enter user friendly message">
    <f:validateLongRange
        minimum="3"
        maximum="6"/>
</h:inputText>
于 2015-03-30T15:25:31.660 回答