EL中整数除法的字符串表示(未截断)?

时间:2012-06-04 23:58:02

标签: java jsf integer el division

我认为这是自动的:

<rich:tooltip value="Download (#{doc.size div 1024 + 1} KB)" />

我需要计算一个文件下载的KB数量(大小是不可变的)。在常规Java代码中,相同的计算将截断小数部分并返回剩余的整数。但是在JSF EL中,没有截断的除法,因此除法返回浮动。

无论如何,它是如何在EL中完成的 - 那是没有引入一个完成这项工作的bean方法?

1 个答案:

答案 0 :(得分:2)

您可以使用fn:split()删除分数。

<ui:param name="size" value="#{fn:split(doc.size / 1024, '.')[0]}" />
<rich:tooltip value="Download (#{size + 1} KB)" />

要小心:它依赖于语言环境。在某些语言环境中,它是逗号,。我宁愿为这项工作创建/使用EL函数,就像OmniFaces of:formatBytes()正在做的那样。

<rich:tooltip value="Download (#{of:formatBytes(doc.size)})" />