0

最近、JSF1.2からJSF2.1にアップグレードしました。これが私のコードです:

Product Code: <h:inputText id="productCode" value="#{dataItem.productCode}" maxlength="25" disabled="#{dataItem.disabled}">
                        <f:validateLength minimum="2" maximum="25" />
                    </h:inputText>
                    <h:message for="productCode" errorClass="error" showSummary="false" />

JSF 1.2でのvalidateLengthの動作は、製品コードのフィールドに値「1」を入力すると、許容される最小値「2」未満であり、「値は許容される最小値「2」未満です」というエラーメッセージが表示されます。 "。ただし、[製品コード]フィールドに値を入力しないと、エラーメッセージが表示されません。

この動作により、JSF2.1の一部が変更されました。製品コードフィールドに値を指定しないと、「値は許容最小値「2」未満です」というエラーメッセージが表示されます。

動作はJSF2.1の一部を本当に変更しましたか?

これについての考えや助けは大歓迎です。

4

2 に答える 2

0

これは、実際には JSF 1.2 のバグでした。必須ではない空のフィールドは、そのように検証されるべきではありません。

要件を検証する場合は、 を使用しますrequired="true"

<h:inputText ... required="true">

必要なメッセージを制御したい場合は、requiredMessage属性を設定します (JSF2 以降の新機能):

<h:inputText ... required="true" requiredMessage="Please enter value">

ところで、一般的な検証メッセージを制御することもできvalidatorMessageます (これも JSF2 以降の新機能です)。

于 2012-09-12T15:31:02.470 に答える