我有一個HashMap包含HashMap的(hshFields)(ecd_date,owned_by,等等。)與鍵(標籤,大小,etc..that我訪問這樣:JSTL在請求屬性與嵌套的HashMap forToken
<c:out value="${hshFields.ecd_date.label}" />
<c:out value="${hshFields.owned_by.label}" />
<c:out value="${hshFields.fnd_source.label}" />
(注:我必須使用JSTL,而不是EL)
的約吐出領域的一個「標籤」(保存在一個XML地圖),即:
commitment_id = Commitment Id
owned_by = Commitement Owner
fndsource = Funding Source
我想現在使用jstl forToken循環嵌套的HashMap。但是我無法讓它工作。這裏是我的嘗試之一:
<c:forTokens items="commitment_id, owned_by, fndsource" delims="," var="curField">
The Field Label is: <c:out value="${hshFields.${curField}.label}" /> <br />
The Field Sixze is: <c:out value="${hshFields.${curField}.size}" /> <br />
</c:forTokens>
這是不工作,因爲不正確的語法或希望不是因爲我沒有能力EL?
編輯 確定基於skaffman以下的迴應我:
<c:forTokens items="owned_by, ecd_date, commitment_id" delims="," var="curField">
Label for <c:out value="${curField}" /> : <c:out value="${hshFields[curField].label}" /><br></br>
</c:forTokens>
,輸出是:
Label for owned_by : Commitment Owner
Label for ecd_date :
Label for commitment_id :
這似乎是第一個令牌唯一的工作,因爲如果我使用如下:
Label for owned_by : <c:out value="${hshFields.owned_by.label}" /> <br></br>
Label for ecd_date : <c:out value="${hshFields.ecd_date.label}" /> <br></br>
Label for commitment_id : <c:out value="${hshFields.commitment_id.label}" /> <br></br>
我得到這樣的輸出:
Label for owned_by : Commitment Owner
Label for ecd_date : Estimated Completion Date
Label for commitment_id : Commitment Number
注意:您**正在使用*兼有* JSTL *和* EL。 JSTL是那些''標籤,EL是那些'$ {}'的東西。 –
BalusC
2010-08-30 18:23:08
@BalusC我的意思是我使用jsp 1.2所以這不起作用:但這是「/> – jeff 2010-08-30 18:34:12
這就是所謂的」模板文本中的EL「。它確實在JSP 2.0之前不起作用。 – BalusC 2010-08-30 19:23:07