Jsf 2 用于货币输入的Primefaces输入(浮点后正好2位)

Jsf 2 用于货币输入的Primefaces输入(浮点后正好2位),jsf-2,primefaces,masking,Jsf 2,Primefaces,Masking,我需要一个PrimeFaces输入组件,来获取/设置一个现金量,这意味着一个在浮点后有两位数字的十进制数 我试过使用inputMask,比如 <p:inputMask value="#{moneyBean.amount}" mask="999.99"/> 但是我找不到任何方法来设置一个可以接受以下内容的掩码: 1个或多个浮点前的算术值 (可选)浮点“” 0到2浮点后的算术值 例如,一些有效输入可能是: 1234.56 1234.5 2.8

我需要一个PrimeFaces输入组件,来获取/设置一个现金量,这意味着一个在浮点后有两位数字的十进制数

我试过使用inputMask,比如

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

但是我找不到任何方法来设置一个可以接受以下内容的掩码:

  • 1个或多个浮点前的算术值
  • (可选)浮点“
  • 0到2浮点后的算术值
  • 例如,一些有效输入可能是:

  • 1234.56
  • 1234.5
  • 2.8
  • 120
  • 120.00

  • 有什么办法可以有效地获取此输入?

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

    http://www.primefaces.org/showcase/ui/csvEvent.jsf
    
    有很多例子可以帮助你。 我想这两个标签会解决你的问题

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

    它肯定会对您有所帮助。

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

    <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" />
    

    谢谢,但光靠验证是不够的。我需要将用户的输入限制为数字和“.”。在您提供的链接中,允许用户打印任何内容
    http://www.primefaces.org/showcase-ext/sections/inputNumber/advanceUsage.jsf
    
    <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" />