【问题标题】:Getting the component id on the error validation message获取错误验证消息上的组件 ID
【发布时间】:2013-10-11 16:17:40
【问题描述】:

我已经尝试使用这段代码在表单上包含出生日期字段:

<h:form>
    <h2>JSF Registration App</h2>
    <h4>Registration Form</h4>
    <table>
        <tr>
            <td>First Name:</td>
            <td>
        <h:inputText label="First Name" id="fname" value="#{mybean.firstName}" required="true" />
                <h:message for="fname" />
            </td>
        </tr>
        <tr>
            <td>
                <h:inputText value="#{userBean.dob}" id="dob" required="true" > 
                    <f:convertDateTime pattern="MM-dd-yy"/> 
                </h:inputText> (mm-dd-yy) 
                <h:message for="dob"/>
            </td>
        </tr>

    </table>

    <p>
        <h:commandButton value="clique ici pour valider" action="Register" />
    </p>

</h:form>

我在将字段留空后收到此消息

(mm-dd-yy) j_idt5:dob : erreur de validation. Vous devez indiquer une valeur.

为什么消息中有jsf自动生成的id“j_idt5:dob”?

【问题讨论】:

    标签: validation jsf


    【解决方案1】:

    只要您没有像这样显式指定输入组件的label 属性,输入组件的客户端 ID 就会成为默认的转换/验证消息标签:

    <h:inputText ... label="Date of birth" />
    

    如果你这样做了,那么消息会变成:

    出生日期:验证错误。 Vous devez indiquer une valeur。


    客户端 ID 中的 j_idt5 来自 &lt;h:form&gt;。如果你给它一个固定的ID,比如id="register"(并且省略输入组件的label),那么消息变成:

    register:dob : 错误的验证。 Vous devez indiquer une valeur。


    如有必要,您可以通过 validatorMessage 属性覆盖整个验证器消息。

    <h:inputText ... validatorMessage="Please enter date of birth." />
    

    请输入出生日期。


    同样,来自&lt;f:convertDateTime&gt; 的转换错误消息可以被converterMessage 属性覆盖。

    <h:inputText ... converterMessage="Please enter date of birth in mm-dd-yy format." />
    

    请以 mm-dd-yy 格式输入出生日期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2016-05-27
      • 2013-06-08
      • 2011-07-10
      • 2021-01-29
      • 1970-01-01
      • 2018-01-15
      相关资源
      最近更新 更多