【问题标题】:Why JSTL number format value does not support runtime expressions?为什么 JSTL 数字格式值不支持运行时表达式?
【发布时间】:2012-01-05 15:49:21
【问题描述】:

我有这个代码:

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

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

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

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

需要引用符号

我将如何处理这个问题?

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

【问题讨论】:

    标签: java jsp jstl


    【解决方案1】:

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

    http://docs.oracle.com/javaee/1.3/tutorial/doc/JSTL4.html#wp67593

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 非常感谢。我会试试你的建议。
        【解决方案4】:

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

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

        与:

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

        /jsp 与众不同。

        【讨论】:

          猜你喜欢
          • 2017-02-17
          • 2021-10-17
          • 1970-01-01
          • 2011-04-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-18
          • 2019-04-08
          • 1970-01-01
          相关资源
          最近更新 更多