如何在EL中使用动态密钥获取会话属性?

时间:2011-11-29 10:29:55

标签: java jsp jstl el

如果我像这样设置会话:

<% 
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}

这可能吗?我怎么能这样做?

2 个答案:

答案 0 :(得分:27)

<c:set var="name" value="taintedAttribute" />
<c:out value="${sessionScope.[name]}"/>

你很亲密。删除期限。

<c:set var="name" value="taintedAttribute" />
<c:out value="${sessionScope[name]}"/>

另见:

答案 1 :(得分:2)

查看http://www.java2s.com/Code/Java/JSTL/JSTLSetVariablesScope.htm

<c:set var="test" value="Session Level Value"
    scope="session" />
<c:out value="${sessionScope.test}" />