0

我想知道如何验证 inputText 文本字段并查看它是否匹配十进制格式。以及在渲染时如何使用特定格式格式化该文本字段

我已经这样做了:

    <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>已经预先将其从 转换为 ,因此 对您String来说毫无用处。您应该删除它并将消息指定为。Number<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 回答