2009-12-11 80 views
0

試圖從c:out標記中的地圖訪問值,但以下內容似乎沒有顯示任何值。下面的代碼:使用c:out標記訪問地圖中的值

<c:out value=" letterForm.criteria.map['letterForm.criteria.type']" /> 

任何人有任何想法如何得到比使用下面的代碼,因爲它似乎有點低效的,因爲我們有一個地圖,知道密鑰值以外的映射值。

<c:forEach var="exCovValue" items="${letterForm.criteria.map}"> 
    <c:if test="${exCovValue.key == letterForm.criteria.type}"> 
     <c:set var="extraCoverValue" value="${exCovValue.value}" /> 
    </c:if> 
</c:forEach> 

感謝

回答

3

你離開了${}。試試這個:

<c:out value="${letterForm.criteria.map['letterForm.criteria.type']}" /> 
1

這工作:

<c:out value="${letterForm.criteria.map[letterForm.criteria.type]}" /> 

試圖這樣說:

<c:out value="${letterForm.criteria.map['letterForm.criteria.type']}" /> 

但去掉引號(')的工作。

+0

哎呀,在這個例子中忘了! 歡呼聲幫助 – Travis 2009-12-11 06:16:07

+0

'letterForm.criteria.type'是一個變量,其值顯然是映射鍵之一。 ''letterForm.criteria.type''是一個普通的香草字符串,顯然不是地圖鍵之一。你現在明白爲什麼它會這樣嗎? – BalusC 2009-12-11 11:41:32