Validation 如何自定义JSF验证错误消息

Validation 如何自定义JSF验证错误消息,validation,jsf,message,facelets,Validation,Jsf,Message,Facelets,如何自定义验证失败时显示的验证消息 以下是我的代码: <h:form> <p><h:inputText id="userNo" title="Type a number from 0 to 10:"> <f:validateLongRange minimum="3" maximum="6"/> </h:inputText

如何自定义验证失败时显示的验证消息

以下是我的代码:

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

这不是特别方便用户

最简单的方法是在
标记中设置
validatorMessage=“my custom message”
属性

要了解更高级的方法,请阅读本文


除了Daniel的答案之外,您还可以始终使用输入组件的
标签
属性从错误消息中删除客户端id(
j_idt10:userNo:

<h:input text required ="true" validatorMessage="Enter user friendly message">
    <f:validateLongRange
        minimum="3"
        maximum="6"/>
</h:inputText>
例如,与

<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


标签属性也可以是el表达式,用于动态更改错误消息的这一部分。

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

<h:input text required ="true" validatorMessage="Enter user friendly message">
    <f:validateLongRange
        minimum="3"
        maximum="6"/>
</h:inputText>


我感到惊讶的是,没有办法在属性或其他内容中设置消息“正在运行”。嗯……这肯定更有道理。但是,如果我有多个验证器连接到输入,并且我想定制每个验证器的消息,那该怎么办呢?然后您需要覆盖每个验证器的默认消息(在messages.properties文件中),就像我在postedDescription中添加的文章一样