2017-05-16 15 views
0

说我有一个静态类A有几个公共最终静态字段。如何使用JSTL检索会话作用域对象列表?

public class Foo{ 
    public static final String A_STRING = "a_string"; 
} 

,我也有些类将在会话中设置一个列表,像这样:

List<Bar>barList = getBarList(); session.setAttribute(Foo.A_STRING, barList);

我想通过每个Bar对象和每个输出从JSP访问此列表和循环酒吧对象字段。

我已经想出这样的:

<c:forEach items="${sessionScope[Foo.A_STRING]}" var="element"> 
<tr> 
<td>${element.id}</td> 
td>${element.name}</td> 
... 
</tr></c:forEach> 

这是不工作的,任何帮助将不胜感激,谢谢。

+0

'Foo.A_STRING'不会被解析,而是尝试这个'$ {sessionScope [a_string]}' –

+0

不起作用。但是,$ {sessionScope.a_string}确实有效,但我不想那样做。我不想硬编码字符串文字。 –

回答

0

首先,将${sessionScope[Foo.A_STRING]}更改为${sessionScope.a_string}

其次,您有不一致的变量名称(elementselement),请更改其中之一以使其一致。

<c:forEach items="${sessionScope.a_string}" var="element"> 
    <tr> 
     <td>${element.id}</td> 
     <td>${element.name}</td> 
    ... 
    </tr> 
</c:forEach> 
+0

感谢您的回复。它确实有效,但我不想硬编码“a_string”。有没有办法解决?第二个问题是固定的。这是一个错字。感谢您的注意。 –

相关问题