【问题标题】:EL: how to print static variables?EL:如何打印静态变量?
【发布时间】:2023-03-18 06:23:01
【问题描述】:

我有以下 JSP 页面:

<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
test #1: value of PI is <c:out value="${java.lang.Math.PI}" />.
test #2: value of PI is ${java.lang.Math.PI}.
test #3: value of PI is <%= java.lang.Math.PI %>.

不知何故,只有测试#3 有输出。为什么 EL 不打印静态变量的值?

【问题讨论】:

  • @BalusC:你现在一定把那个收藏了:)
  • @skaffman:我只是在 Firefox 浏览器地址栏中输入“constants el”并复制第一个链接 :)

标签: java jsp el


【解决方案1】:

对于您的每个示例,情况如下:

<c:out value="${java.lang.Math.PI}" />

这是在寻找名为 java 的变量或 bean 并尝试在其上执行一个名为 lang 的方法。在您的名为 Java 的 JSP 页面中可能没有变量或 bean,因此没有输出。

${java.lang.Math.PI}

这和上面一样,只是用EL写的。相同之处在于它正在寻找一个名为 java 的变量或 bean。

<%= java.lang.Math.PI %>

这是在 JSP 编译期间,计算 java.lang.Math.PI 并将其写入 JSP。如果您查看已编译的 JSP,您将看到那里写入的值。

第三个示例是像在 Java 类中一样评估表达式。前两个示例期望 'java' 是一个变量名。

【讨论】:

    猜你喜欢
    • 2020-03-17
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多