2017-09-23 76 views
0

我在使用<h:inputText中的<f:convertNumber groupingUsed="false" />將用戶輸入轉換爲數字。當再次打開輸入對話框時,輸入格式化爲只顯示3個小數位。我怎樣才能改變這個來顯示輸入「保持原樣」。在JSF中顯示原始值f:convertNumber(無限小數位數)

要格式化輸出中的值,我使用#{of:formatNumber(specification.pricePerUnit, '#0.000')}來顯示3個小數位(至少)。不幸的是,我們有客戶,他們想輸入更多的小數位(上面的問題)。那麼,我怎樣才能顯示至少有3個小數位的數字,但是如果有更多的數字,請將它們全部顯示出來?

感謝提前:)

+1

我不知道如果我理解你的問題很好 - 只要使用''#.000 ####### '格式爲始終顯示3個小數位(即使它們爲0),並且最多可達10個小數位數乳清不爲0.例如:'將顯示:'123,123456789'和這一個:''會顯示:'123,400' – krokodilko

+0

啊好吧,謝謝。這對於顯示值是正常工作的。 :) 另一個問題是關於編輯該值,例如對於值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