【发布时间】:2012-01-08 16:53:59
【问题描述】:
如果我这样设置会话:
<%
session.setAttribute("taintedAttribute", "what ever we want");
%>
通常我们可以在EL中得到这样的会话变量
${sessionScope.taintedAttribute }
但是如果我想这样做呢
<%
String name = "taintedAttribute";
//session.setAttribute(name, "what ever we want");
session.getAttribute(name);
%>
那我们如何在 EL 中调用呢?
EL 可以得到类似${sessionScope.---dynamic name ---} 的东西吗?
如果我这样做:
<c:set var="name" value="taintedAttribute" />
<c:out value="${sessionScope.[name]}"/>
名称将替换为taintedAttribute,与此行相同
${sessionScope.taintedAttribute}
这可能吗?我该怎么做?
【问题讨论】:
-
不把java代码写在scriptlet中,全部在服务器端做,尽量维护MVC怎么样。
-
我只想在 jsp 页面中使用 jstl。这就是为什么我问如何做到这一点。呵呵。我需要这段代码来检查这个会话,在 jsp 中显示一些东西。
-
@NurAini:关键是,您根本不应该在 JSP 中更改应用程序状态(包括会话属性)。无论是使用 scriptlet 还是 JSTL。
-
对不起。这不是我想更改任何应用程序状态。我只是想检查该会话属性是否存在。我编辑了这个问题,因为我犯了一个错误。我实际上想要 jstl 中的 session.getAttribute(name) 之类的东西。