我在应用程序/服务器启动期间将值映射加载到ServletContext中
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的键从map获取值(List) 但是我得到原始地图大小,但没有基于密钥的列表大小。
知道遗失/出错的地方
答案 0 :(得分:1)
完成。
我自己解决了。我发布了我的错误和正确的解决方案。这样下去就可能对某人有用了
访问servletContext属性
<s:set name="udm_cfs_ufs_map" value="#application.UDM_UFS_CFS_MAP" />
用于根据键
从地图中获取内容<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:iterator value="ufs_list">
<s:property />
<br />
</s:iterator></td>
</tr>