2013-04-08 64 views
0
<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”。在内联文本中将double转换为int

我想要输出“Last Stuff 2”,我该怎么做?

+0

为什么它首先是double而不是整数?如何让代表“数量”的字段具有双重类型?你的根本问题是错误的数据模型,而不是麻烦的表述。 – BalusC 2013-04-08 13:52:50

+0

你是对的,正确的dataModel我不会有这个问题。我更新了问题以更好地解释我的问题。如您所见,我无法更改数据模型,因为在模板中创建了“ordersToShow”。感谢您的omnifaces :: importFunctions。真是奇怪,Math:min似乎为(int,int)输入返回一个double。无论如何,国际海事组织应该这样做,''cast'to jsf-template int'无论如何都是可能的。 – 2013-04-08 14:51:17

回答

-1

您可以使用f:convertNumber。保持minFractionDigits =“0”应该做到这一点。

看到这里http://www.tutorialspoint.com/jsf/jsf_convertnumber_tag.htm

我没有使用过电话号码:字段集那么现在知道如何在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> 
+0

我到底需要添加转换器? – 2013-04-08 10:08:26

+0

更新我的答案,包括fmt标签格式的数字。 – 2013-04-08 10:27:20

+0

''是[不可用](http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/)在Facelets中。 – BalusC 2013-04-08 13:51:41

0

F:convertNumber将抛出错误(家长不而ValueHolder的实例)的p:FIELDSET如果其内部使用。

相反,你可以保持一个字符串中托管的bean,并在其吸气剂可以使用String.format("%.0f", ordersToShow);

否则保持为字段集的结合变量,并设置在豆上面的格式化值。

+0

感谢您的回复。我会尽最大努力做到这一点,但我的希望是解决这种观点 - 在这个观点中的平等。 – 2013-04-08 14:41:47