2017-05-16 29 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」。有沒有辦法解決?第二個問題是固定的。這是一個錯字。感謝您的注意。 –

相關問題