jsf-2 - 货币转换器可以在未输入时忽略 $ 符号吗

标签 jsf-2 primefaces converter

在数据表中,我必须将输入验证为货币。当我在删除 $ 符号后输入值时,输入组件会抛出错误。

    <p:column>
        <f:facet name="header">
            <p:outputLabel value="REC REVENUE" />
        </f:facet>
        <p:inputText id="RERVN" styleClass="RERVN"
       value="#{segmentSetup.userSegmentTypesMap['RERVN'].segmentValues[rank].rangeMinValue}"
   disabled="#{!segmentSetup.userSegmentTypesMap['RERVN'].selected  ||    (rank==fn:length(segmentSetup.ranks)) }"
validator="#{segmentSetup.validateRanges}">
            <f:convertNumber maxFractionDigits="2" minFractionDigits="0" currencySymbol="$" type="currency" />
        </p:inputText>
        <p:message for="RERVN" />
    </p:column>

当我输入不带美元符号的值时,我收到此验证错误。

tabView:segmentRangeTable:0:GRRVN:'45' 无法理解为货币值。示例:$99.99

最佳答案

$ 与输入分开,并使用普通数字转换器。

$<p:inputText ...>
    <f:convertNumber maxFractionDigits="2" minFractionDigits="0" />
</p:inputText>

如有必要,您可以使用 CSS 将 $ 在视觉上重新定位到输入元素中。下面是纯 HTML/CSS 的启动示例:

<div class="currency"><span>$</span><input /></div>

.currency span { position: absolute; margin: 5px 2px; }
.currency input { padding-left: 5px; }

关于jsf-2 - 货币转换器可以在未输入时忽略 $ 符号吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14344144/

相关文章:

java - 不同浏览器 session 中相同用户帐户的相同 JSF session ?

jsf - 两个 primefaces 日历组件验证

java - 如何在jsf中解决周围的命名容器?

jsf - 如何构建动态菜单

c# - 不同命名空间中的 XAML 转换器

jsf-2 - 通过消息传递的JSF通用错误屏幕

jsf - jsf 注销后发生 session 启动事件?

jsf-2 - JSF双重提交表单数据

android - 在 Android 改造中集成简单 XML 转换器时出现的问题

R:将电子邮件地址转换为唯一整数