2

フォームの生年月日フィールドをサブメットするために、このコードを試しました:

<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" があるのはなぜですか?

4

1 に答える 1

4

label次のように入力コンポーネントの属性を明示的に指定しない限り、入力コンポーネントのクライアント ID がデフォルトの変換/検証メッセージ ラベルになります。

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

これを行うと、メッセージは次のようになります。

生年月日 : erreur de validation. Vous devez indiquer une valeur.


クライアント IDのj_idt5は から来てい<h:form>ます。のように固定 ID を指定するとid="register"(label入力コンポーネントの を省略したままにする)、メッセージは次のようになります。

register:dob : erreur de validation。Vous devez indiquer une valeur.


必要に応じて、validatorMessage属性ごとにバリデータ メッセージ全体をオーバーライドします。

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

生年月日を入力してください。


同様に、からの変換エラー メッセージは、属性<f:convertDateTime>によってオーバーライド可能です。converterMessage

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

生年月日を mm-dd-yy の形式で入力してください。

于 2013-10-11T16:20:45.753 に答える