如何扩展jstl fmt标记库

时间:2013-10-25 12:45:56

标签: java jstl

物品的jstl货币

使用 http://java.sun.com/jsp/jstl/fmt

标签包括如下:     <%@ taglib uri =“http://java.sun.com/jsp/jstl/fmt”prefix =“fmt”%>

我们正在使用

<fmt:formatNumber maxFractionDigits="0" currencySymbol="$" type="currency" value="${employeeDetail.employee.annualSalary }" />


Now behavior is :

Ex: $470.161 is round to $470.16)
Ex: $470.165 is round to $470.16)
Ex: $470.166 is round to $470.17)

what is expected uis
Ex: $470.161 is round to $470.16)
Ex: $470.165 is round to $470.17)
Ex: $470.166 is round to $470.17)

我们有什么方法可以设置 RoundingMode.HALF_UP 吗?

以任何方式覆盖[jstl fmt tag library]的默认行为并支持舍入模式。

1 个答案:

答案 0 :(得分:0)

您是否可以获得标准formatNumber标记以不同方式对数字进行舍入? AFAIK,No。

但您可以执行以下操作之一:

  • 您可以将value属性更改为使用函数首先对值进行舍入的表达式;例如How to call a static method in JSP/EL?

  • 您可以创建一个扩展现有Tag类的自定义标记,并以不同方式进行舍入。障碍是:

    • 实际的标记类(及其名称)取决于您正在使用的JSTL的实现。因此,您的自定义Tag类同样将绑定到特定的JSTL实现。

    • 现有的标记类实现可能无法扩展。