为什么JSTL数字格式值不支持运行时表达式?

时间:2011-11-24 13:15:44

标签: java jsp jstl

我有这段代码:

<fmt:formatNumber type="number" 
                  maxFractionDigits="2" 
                  value="${maxAllowableAmount}" />

我在Eclipse编辑器中有这个警告:

  

&#34;值&#34;不支持运行时表达式

我试图忽略它并运行应用程序,但我遇到了这个运行时错误:

  

引用符号预期

我该怎么处理这个?

我的数据来自数据库,我想在浏览器上对其进行格式化。

4 个答案:

答案 0 :(得分:15)

确保使用正确的@ taglib指令。替换:

<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>

使用:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

/jsp有所不同。

答案 1 :(得分:6)

您正在使用史前JSTL 1.0版本(甚至是原型)。您需要升级到至少JSTL 1.1,或者如果您的容器支持它(Servlet 2.5或更高版本),请升级到当前最新的JSTL 1.2。

您可以在我们的JSTL wiki page中找到JSTL下载链接。不要忘记删除旧的JSTL库(jstl.jarstandard.jar)并修复@taglib声明以包含/jsp路径。还要确保您的web.xml被声明符合至少Servlet 2.4 for JSTL 1.1或至少Servlet 2.5 for JSTL 1.2。

答案 2 :(得分:2)

答案 3 :(得分:1)

这有点奇怪。如果我正确理解taglib javadoctype属性可以是运行时值。

也许您使用的是不支持RT / EL的旧版JSTL?检查JSP中与'fmt'前缀关联的名称空间。