在内联文本中将double转换为int

时间:2013-04-08 09:56:38

标签: jsf casting converter

<o:importFunctions type="java.lang.Math" />//omnifaces, see http://showcase.omnifaces.org/taghandlers/importFunctions
<c:set var="ordersToShow" value="${Math:min(5, processedOrders.size())}" /> // processedOrders is a List
<p:fieldset legend="Last Stuff (${ordersToShow})">[...]</p:fieldset>

$ {ordersToShow}的类型为java.lang.Double(输出为“$ {ordersToShow.class}”)并打印出来。比如“Last Stuff 2.0”。

我希望输出像“Last Stuff 2”,我该怎么做?

2 个答案:

答案 0 :(得分:0)

f:如果在内部使用,则convertNumber将为p:fieldSet抛出错误(父类不是ValueHolder的实例)。

相反,您可以在托管bean中保留一个字符串,在其getter中可以使用String.format("%.0f", ordersToShow);

另外,为fieldSet保留一个绑定变量,并在bean中设置上面的格式化值。

答案 1 :(得分:-1)

您可以使用f:convertNumber。保持minFractionDigits =“0”应该可以解决问题。

请参阅此处http://www.tutorialspoint.com/jsf/jsf_convertnumber_tag.htm

我没有使用过p:fieldset所以现在确定f:convertNumber如何与图例一起使用但似乎不可能。

你可以使用它,用下面的方法替换c:set和p:fieldset行。这里解释了fmt标签http://www.tutorialspoint.com/jsp/jstl_format_formatnumber_tag.htm

<fmt:formatNumber var="ordersToShow" type="number" maxFractionDigits="0" value="${...}" />
<p:fieldset legend="Last Stuff (${ordersToShow})">[...]</p:fieldset>