2017-09-23 3 views
0

私は<h:inputTextの中で<f:convertNumber groupingUsed="false" />を使用して、ユーザーの入力を数値に変換しています。入力ダイアログを再び開くと、入力は3小数点のみを表示するようにフォーマットされます。入力を「そのまま」表示するには、これをどのように変更できますか。JSFの元の値を表示f:convertNumber(小数点以下の桁数は無制限)

出力の値をフォーマットするには、私は#{of:formatNumber(specification.pricePerUnit, '#0.000')}を使って3小数点(少なくとも)を表示しています。残念ながら、お客様にはより多くの小数点を入力したいと思っています(上記の問題)。だから、少なくとも3小数点以下の数字を表示するにはどうしたらいいですか?事前に

おかげで:)

+1

私はあなたの問題を十分に理解している場合を確認していない - ちょうど使用 ' '#0.000 ####### ''が表示されます: '123,400' – krokodilko

+0

ああ、ありがとう、ありがとう。これは、値を表示するために正常に動作しています。 :) もう1つの問題は、その値を編集することです。値 '123,123456789'の場合、h:入力は '実際の'値の代わりに' 123,123'を表示しています。 – J4y

+0

いいえ、この属性は 'maxFractionDigits'です。これも' 10'に設定することができます。しかし、データベースから来るので、 'h:input'の値を表示する方法はありませんが、ローカライズされた数値ですか? – J4y

答えて

1

さて、次のことを仮定してみましょう:私は、フォームとがあります。値123,123456789を入力して保存します。他のページの上のあなたのコード は 123,123456789と表示されます。しかし、値を編集するためにフォームを再度開くと、 入力フィールドに123,123として表示されますが、123,123456789では表示されません。だから、私は maxFractionDigitsのデフォルト値は3と仮定しますか?

非常に基本的な例:

<h:form> 
    <div> 
    <h:outputText value="#{of:formatNumber(testBean.myNumber, '0.000#######')}" /> 
    </div> 
    <div> 
    <h:inputText value="#{testBean.myNumber}" > 
     <f:convertNumber groupingUsed="false" pattern='0.000#######' /> 
    </h:inputText> 
    </div> 
    <h:commandButton type="submit" value="Submit" /> 
</h:form> 

とBeanコード:

private BigDecimal myNumber = new BigDecimal("355.3456"); 

public BigDecimal getMyNumber() { 
    return myNumber; 
} 

public void setMyNumber(BigDecimal myNumber) { 
    this.myNumber = myNumber; 
} 

いくつかのテスト:

ページが最初にGETリクエストの後に以下のようになります。 :

enter image description here


今私は12345.6789099

enter image description here


そしてSubmitボタンがクリックされた後に入力します。
enter image description here


いくつかの別の例:
enter image description here

enter image description here

enter image description here

+0

ああ、私はどこにでもこのパターンを追加する必要があります。どうもありがとう :) – J4y

関連する問題