1
我加載地圖值寫入ServletContext應用/服務器獲得一個地圖的價值在Struts2 JSP
HashMap<String, List<String>> cfsUfsMap = new HashMap<String, List<String>>();
//some operations
application.setAttribute("UDM_UFS_CFS_MAP", cfsUfsMap); //application = ServletContext
我需要直接在JSP頁面中使用該地圖,爲此我開始時做到了這一點
<s:set name="udm_cfs_ufs_map" value="#application.UDM_UFS_CFS_MAP" />
<table class="first" width="100%" border="0" cellpadding="0" id="sups_assignedservices_info_table">
<tr>
<th width="30%">Assigned service name </th>
<th width="15%">CFS Code </th>
<th width="15%">Status </th>
<th width="20%">Date </th>
<th width="20%">UDM </th>
</tr>
<s:iterator value="#sups_services.services">
<s:set name="ufs_list" value="#udm_cfs_ufs_map.['top.code']" />
<tr>
<td class="light"><s:property value="top.name"/> </td>
<td class="light"><s:property value="top.code"/> </td>
<td class="light"><s:property value="top.status"/> </td>
<td class="light"><s:property value="top.date"/> </td>
<td class="light"><s:property value="#udm_cfs_ufs_map.size()" /> - <s:property value="#ufs_list.size()" /></td>
</tr>
</s:iterator>
正如你看到的,我試圖讓使用它的關鍵是top.code 但是我得到原始的地圖大小,但不會從地圖中的值(名單)列表大小基於密鑰。
任何想法什麼是缺失/出錯
我寧願看到迭代器標籤中的var;在工作時使用'top',對任何可能影響堆棧頂部實際情況的更改都非常敏感。 –