【问题标题】:validating and displaying decimal numbers in JSF 2.0在 JSF 2.0 中验证和显示十进制数
【发布时间】:2013-02-06 15:30:21
【问题描述】:

我想知道如何验证 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>

但它没有按我的意愿工作:(。请帮助我

【问题讨论】:

    标签: jsf


    【解决方案1】:

    您正在混合验证和转换。 &lt;f:validateRegex&gt; 仅适用于 String 值,不适用于 Number 值,但是,&lt;f:convertNumber&gt; 已经预先将其从 String 转换为 Number,因此 &lt;f:validateRegex&gt; 对您来说毫无用处。您应该删除它并将消息指定为 converterMessage

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

    另一种方法是创建一个扩展 NumberConverter 的自定义转换器,并根据某些正则表达式模式匹配在不正确的输入格式上抛出 ConverterException

    另见:

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 2011-04-16
      相关资源
      最近更新 更多