JSF EL算术运算的格式化结果
Format result of JSF EL arithmetic operation
两个整数相除得到一个浮点值。
在以下情况下,有没有办法将结果作为整数得到?
<p:commandButton value="#{bean.intA / bean.intB}" ../>
结果应显示为“1”而不是“1.0”。
EL 不支持 upcasting/formatting。一个通用的解决方案是创建一个 custom EL function 引用以下实用方法:
public static String formatNumber(Number number, String pattern) {
if (number == null) {
return null;
}
DecimalFormat formatter = (DecimalFormat) NumberFormat.getNumberInstance(getLocale());
formatter.applyPattern(pattern);
return formatter.format(number);
}
然后您可以按如下方式使用它:
<p:commandButton value="#{util:formatNumber(bean.intA / bean.intB, '#')}" ... />
以防你碰巧使用JSF实用库OmniFaces, it's available as #{of:formatNumber()}
,其源代码实际上是上面复制的。
两个整数相除得到一个浮点值。 在以下情况下,有没有办法将结果作为整数得到?
<p:commandButton value="#{bean.intA / bean.intB}" ../>
结果应显示为“1”而不是“1.0”。
EL 不支持 upcasting/formatting。一个通用的解决方案是创建一个 custom EL function 引用以下实用方法:
public static String formatNumber(Number number, String pattern) {
if (number == null) {
return null;
}
DecimalFormat formatter = (DecimalFormat) NumberFormat.getNumberInstance(getLocale());
formatter.applyPattern(pattern);
return formatter.format(number);
}
然后您可以按如下方式使用它:
<p:commandButton value="#{util:formatNumber(bean.intA / bean.intB, '#')}" ... />
以防你碰巧使用JSF实用库OmniFaces, it's available as #{of:formatNumber()}
,其源代码实际上是上面复制的。