【发布时间】: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 规范/实现中的错误/遗漏(没有时间调查哪里),您不能使用常量作为键。我会尝试
<c:set var="_key" value="${CommmonKeys.TITLE}" />然后${requestScope[_key]},但这只是一种解决方法。 -
@Jozef Chocholacek 感谢您的建议。我也认为
something不起作用。但是这是什么something我找不到 - 这就是我问这个问题的原因。你能删除这个possible duplicate吗?
标签: java jsp jakarta-ee glassfish el