0

inputText テキスト フィールドを検証して、10 進形式と一致するかどうかを確認する方法を知りたいです。また、レンダリング時に、そのテキスト フィールドを特定の形式でフォーマットする方法

私はこれをやった:

    <rich:column id="soldes_comptables">
                <f:facet name="header">
                    <h:outputText value="Solde Comptable" />
                </f:facet>
                <h:inputText id="inputTextSC" value="#{file.soldes_comptables}"
                    label="Montant"
                    style="border-color:#F2F3F7;"
                    validatorMessage="The number must be decimal eg: 000.00"
                    >
                    <f:convertNumber pattern="#,###,##0.00"/>
                    <f:validateRegex pattern="^[0-9]+(\.[0-9]{1,2})?$"></f:validateRegex>
                    <rich:validator />
                </h:inputText>
                <rich:message for="inputTextSC"/>
            </rich:column>

しかし、それは私が望むように機能していません:(.助けてください

4

1 に答える 1

5

検証と変換が混在しています。は値に<f:validateRegex>のみ適用され、String値には適用されませんがNumber、 は事前にからに<f:convertNumber>変換しているため、あまり役に立ちません。それを削除し、代わりにメッセージを指定する必要があります。StringNumber<f:validateRegex>converterMessage

<h:inputText ... converterMessage="The number must be decimal eg: 000.00">
    <f:convertNumber pattern="#,###,##0.00"/>
</h:inputText>

別の方法として、拡張するカスタム コンバーターを作成し、正規表現パターン マッチングに基づいて不適切な入力形式をNumberConverterスローすることもできます。ConverterException

以下も参照してください。

于 2013-02-06T17:07:12.723 に答える