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

Java 为什么JSTL数字格式值不支持运行时表达式?,java,jsp,jstl,Java,Jsp,Jstl,我有以下代码: <fmt:formatNumber type="number" maxFractionDigits="2" value="${maxAllowableAmount}" /> 我在Eclipse编辑器中看到以下警告: “值”不支持运行时表达式 我试图忽略它并运行应用程序,但出现以下运行时错误: 应为引号符号 我该怎么处理这件事 我的数据来自数据库,我想在浏览器上格式化它 您需要标签库的RT

我有以下代码:

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

我在Eclipse编辑器中看到以下警告:

“值”不支持运行时表达式

我试图忽略它并运行应用程序,但出现以下运行时错误:

应为引号符号

我该怎么处理这件事


我的数据来自数据库,我想在浏览器上格式化它

您需要标签库的RT/EL版本


那有点奇怪。如果我理解正确,那么
type
属性可以是一个运行时值


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

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


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

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

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

与:



/jsp
起作用。

非常感谢。我试试你的建议。
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>