web-dev-qa-db-ja.com

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}

それは可能ですか?どうやってやるの?

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

あなたは近くにいた。ピリオドを削除します。

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

以下も参照してください。

27
BalusC

見てください http://www.Java2s.com/Code/Java/JSTL/JSTLSetVariablesScope.htm

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