有沒有什麼辦法來格式化ZK標籤組件,它看起來像像 <label value="${each.value}" />
多少?值是雙打,我想分開成千上萬等...我知道雙盒例如具有格式屬性,但如果我只是想顯示數字作爲標籤?謝謝你的幫助。數字格式
Q
數字格式
1
A
回答
2
功能要求
首先我已經打開了這對ZK的跟蹤系統功能要求,你可以找到它here的。如果你想更新,請按照這個。實施
的
方法有在執行這一取決於你使用的是什麼模式&技術事實的方式。
MVC & EL
您可以創建一個EL函數會做的格式爲你在ZUL文件。首先創建如下類:
public class FormatElNumber {
public static String formatStock(double stock) {
final NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
return nf.format(stock);
}
}
這將輸出帶有兩位小數的數字。其次,你需要添加到您的ZUL文件的頂部:
<?xel-method prefix="c" name="formatStock" class="demo.grid.hierarchy.FormatElNumber"
signature="java.lang.String formatStock(double)"?>
然後,當你有一個標籤,你可以做如下:
<label style="color:red;" value="${c:formatStock(each.averageHigh)}" />
更多infomration這種技術可用here。
MVVM
的MVVM實際上是更容易實現,你所創造的被稱爲一個轉換器,例如(請注意這個類是未經測試,但你的想法)。
public class NumberFormatConverter implements Converter {
@Override
public Object coerceToBean(Object val, Component comp, BindContext ctx) {
return null;
}
@Override
public Object coerceToUi(Object val, Component comp, BindContext ctx) {
if(!(val instanceof Integer)) {
throw new IllegalArgumentException("The argument must be a number!");
}
final Object tmp = ctx.getConverterArg("length");
int length = 0;
if(tmp instanceof Integer) {
length = (Integer)tmp;
}
final NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(length);
return nf.format(val);
}
}
然後,所有你在ZUL文件做的是指定您希望使用一個轉換器的值,例如:
<label value="@load(vm.message) @converter(vm.myConverter)"/>
關於這個技術,你可以參考here更多的信息。
1
從文檔:http://books.zkoss.org/wiki/ZUML_Reference/EL_Expressions/Core_Methods/formatNumber
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
<zk>
<label value="${c:formatNumber(2332315231, '$ ###,###,###.00')}" />
</zk>
相關問題
- 1. 數字格式
- 2. 數字格式
- 3. 數字格式
- 4. 數字格式
- 5. 數字格式
- 6. 數字格式
- 7. PHP數字格式與整數格式
- 8. 價格數字格式
- 9. Handsontable數字格式
- 10. PHP數字格式
- 11. 數字格式< -
- 12. 爲數字格式
- 13. Yii2:數字格式
- 14. XSLT - 數字格式
- 15. SCJP - 數字格式
- 16. MySQL:數字格式
- 17. WPF數字格式
- 18. 壞數字格式
- 19. AngularJS數字格式
- 20. J2ME - 數字格式
- 21. 數字格式 - Java
- 22. SQL數字格式
- 23. 格式數字值
- 24. XSLT:數字格式
- 25. math.round數字格式
- 26. 更改數字格式(歐洲格式)
- 27. amCharts數字格式(千格式)
- 28. 如何將C++數字格式轉換爲C#數字格式?
- 29. 使用數字格式插件來循環格式化數字
- 30. Go - 如何格式化數字數字
酷!我已經看到了@converter的方式來做到這一點,但在某些情況下,我們正如你所描述的那樣使用MVC模型......無論如何,我一定會在今天晚些時候嘗試。謝謝你的時間添! – Gatekeeper 2012-04-12 08:23:35
我有這個解決一個奇怪的問題......我的代碼是像你這樣的建議,但是當我試圖用'<?XEL-方法PREFIX =「F」 NAME =「formatDouble」級=「my.package顯示ZUL頁面.ElNumberFormatter」 簽名= 「java.lang.String中formatDouble(小數)」>',zkoss拋出錯誤:'org.zkoss.zk.ui.UiException:文件:/ C:/用戶... W /主/ pageIncomeEntry.zul:2:59:未找到類:my.package.ElNumberFormatter'我檢查了包和類名兩次...對此有任何想法? – Gatekeeper 2012-04-12 09:43:31
好吧,我通過創建taglib解決了這個問題,現在它工作... – Gatekeeper 2012-04-12 10:09:06