Primefaces输入货币输入(浮点后正好2位数)

时间:2014-04-23 13:04:08

标签: jsf-2 primefaces masking

我需要一个PrimeFaces输入组件来获取/设置一定数量的现金,这意味着浮点后有一个2位数的小数。

我尝试使用inputMask,比如

<p:inputMask value="#{moneyBean.amount}" mask="999.99"/>

但是我无法找到一些方法来设置一个可以限制的掩码:

  1. 浮点数之前的一个或多个算术值
  2. 可选择一个浮点&#34; &#34;
  3. 0到2 浮点后的算术值
  4. 例如,一些有效的输入将是:

    1. 1234.56
    2. 1234.5
    3. 2.8
    4. 120
    5. 120.00
    6. 有效获取此输入的任何想法吗?

2 个答案:

答案 0 :(得分:3)

正则表达式是我迄今为止找到的最佳方式

<p:inputText id="numInput" value="#{val.value}" required="true"
    label="#{val.title}" validatorMessage="Not valid Number">
    <p:ajax event="change" process="@form" update=":edit_main" />
    <f:validateRegex pattern="^[-+]?[0-9]*\.?[0-9]{1,2}+$" />
</p:inputText>
<p:message for="numInput" />

答案 1 :(得分:0)

您可以使用客户端验证标记访问链接

http://www.primefaces.org/showcase/ui/csvEvent.jsf

有可能的例子可以帮助你。 我认为你的问题将通过这两个标签来解决

<f:validateDoubleRange minimum="5.5" maximum="8.5" /> 

<p:clientValidator /> 

告诉我是否不行。

现在我得到了你想要的。你只需要两个数字后面的“。” Prime Faces extensions提供此类检查。 去抛出链接

http://www.primefaces.org/showcase-ext/sections/inputNumber/advanceUsage.jsf

它一定会帮到你。