1

アプリケーション/サーバーの起動中に値のマップを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であるキーを使用してマップから値(リスト)を取得しようとしていますが、元のマップサイズを取得していますが、キーに基づくリストサイズは取得していません。

何が欠けている/間違っているのか

4

1 に答える 1

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>

于 2012-10-29T05:30:52.893 に答える