さて、次のことを仮定してみましょう:私は、フォームとがあります。値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リクエストの後に以下のようになります。 :
今私は12345.6789099
そしてSubmit
ボタンがクリックされた後に入力します。
いくつかの別の例:
私はあなたの問題を十分に理解している場合を確認していない - ちょうど使用 ' '#0.000 ####### ' 'が表示されます: '123,400' –
krokodilko
ああ、ありがとう、ありがとう。これは、値を表示するために正常に動作しています。 :) もう1つの問題は、その値を編集することです。値 '123,123456789'の場合、h:入力は '実際の'値の代わりに' 123,123'を表示しています。 – J4y
いいえ、この属性は 'maxFractionDigits'です。これも' 10'に設定することができます。しかし、データベースから来るので、 'h:input'の値を表示する方法はありませんが、ローカライズされた数値ですか? – J4y