2013-09-23 32 views
0

我正在使用Java Server Faces和Primefaces。我的一個要求是,不要只允許輸入文本字段中的數字(即允許使用字符和特殊符號)。 我只能允許數量由我如何設置<p:inputText>字段接受jsf中的數字和特殊字符

<p:inputText value="#{doctorindBean.age}" id="age" tabindex="2" maxlength="30"> 
    <pe:keyFilter mask="num"></pe:keyFilter> 
</p:inputText> 

只有通過人物

<p:inputText value="#{doctorindBean.doclastname}" id="lastname" tabindex="2" maxlength="30"> 
     <pe:keyFilter mask="alpha"></pe:keyFilter> 
    </p:inputText> 

當我使用:第二個(只即字符),我不能使用特殊字符。

但我的情況是允許字符和特殊符號。我怎樣才能做到這一點?
有沒有其他方法可以做到這一點?

回答

3

嘗試用一個漂亮的把戲BalusC

  • 將其綁定到一個Integer屬性。

    <h:inputText id="number" value="#{bean.number}" /> 
        <h:message for="number" /> 
    

    在Bean類

    private Integer number;

    的形式將不會提交,它會顯示一個轉換錯誤,當您提交非數字字符。如果你想在投入要素的某些預測意味着<p:inputMask />

更新

  • 如果你想允許在文本字段中的特殊字符去從here

  • 複製代碼,存儲text as String and 解析Bean類中的一些驗證

你可以嘗試以下情形

public String setNumber(String number) 
    { 
     for(int i=0;i<mobile.length();i++) 
    { 
     if((int)number.charAt(i)>65 && (int)number.charAt(i)<90 || (int)number.charAt(i)>97 && (int)number.charAt(i)<122) 
     { 
      throw new NumberFormatException("Exception"); //Throwing manual exception 
     } 
    } 
     this.number=number; 
    } 

它只允許整數和特殊的人物造型 ....

+0

感謝您的快速重播,我的情況是允許的字符和特殊字母。你能建議我,我該怎麼辦? – user2314868

+0

@ user2314868參考更新ans – kark

+0

感謝您提供的信息,我按照我的要求進行了更改... – user2314868

相關問題