【问题标题】:Getting variable in JSP EL by constant does not work通过常量在 JSP EL 中获取变量不起作用
【发布时间】:2017-06-13 09:56:02
【问题描述】:

我使用 GlassFish 4.1 网络配置文件,据我所知使用 EL 3.0。我按照这里的解释做了所有事情 - https://stackoverflow.com/a/3735006/5057736 但是我的这个解决方案的实现不起作用。

这是我的常量类

public class CommonKeys {
    public static final String TITLE = "SOME_KEY";
}

这是我设置属性的方式:

request.setAttribute(CommonKeys.TITLE, "TEST");

这是我的jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="org.temp.CommonKeys"%>

<div> Method 1:<%=request.getAttribute(CommonKeys.TITLE)%></div>
<div> Method 2:${requestScope[CommmonKeys.TITLE]}</div>
<div> Method 3:${requestScope["SOME_KEY"]}</div>

这是我得到的输出

Method 1:TEST
Method 2:
Method 3:TEST

为什么方法 2 不起作用?

【问题讨论】:

  • @Jozef Chocholacek 我按照您提供的链接中的说明做了。但是,它不起作用。这就是这个问题的原因。
  • 看起来像 EL 规范/实现中的错误/遗漏(没有时间调查哪里),您不能使用常量作为键。我会尝试&lt;c:set var="_key" value="${CommmonKeys.TITLE}" /&gt; 然后${requestScope[_key]},但这只是一种解决方法。
  • @Jozef Chocholacek 感谢您的建议。我也认为something 不起作用。但是这是什么something 我找不到 - 这就是我问这个问题的原因。你能删除这个possible duplicate吗?

标签: java jsp jakarta-ee glassfish el


【解决方案1】:
<c:set var="TITLE" value="<%=CommmonKeys.TITLE%>" />
Method 2:${requestScope[TITLE]}

按照上述更改您的代码,应该可以正常工作。它对我有用。

【讨论】:

    猜你喜欢
    • 2011-01-20
    • 2011-01-27
    • 2012-05-05
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2021-08-23
    相关资源
    最近更新 更多