`
longgangbai
  • 浏览: 7254622 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

struts2的学习(复杂的遍历标签)

阅读更多

例如我有个此结构的map
private Map<String, List<HotelRoomTypeView>> viewMap = new HashMap<String, List<HotelRoomTypeView>>()

在struts2 中这样遍历
Java代码
<s.iterator value="viewMap.keySet()" id="vkey">  
                <tr>  
                    <td>供应商:</td>  
                    <td>  
                        <s.property value="vkey"/>  
                    </td>  
                    <td colspan="2">&nbsp;</td>  
                    <td>  
                    </td>  
                </tr>  
                <s.iterator value="viewMap.get(#vkey)">  
                <tr>  
                    <td>房型名称:</td>  
                    <td>  
                        <s.property value="roomTypeName"/>  
                    </td>  
 
                    <td>价格:</td>  
                    <td>  
                        <s.iterator value="rates" id="rate">  
                        <s.date format="yyyy-MM-dd" name="startDate"/> / <s.date name="endDate" format="yyyy-MM-dd"/>  
                        &nbsp;&nbsp;纯房价:<s.property value="pureRoomFee"/>&nbsp;&nbsp;佣金<s.property value="commission"/>  
                        </s.iterator>  
                    </td>  
                </tr>  
                </s.iterator>  
                </tr>  
                </s.iterator> 

<s.iterator value="viewMap.keySet()" id="vkey">
                <tr>
                    <td>供应商:</td>
                    <td>
                        <s.property value="vkey"/>
                    </td>
                    <td colspan="2">&nbsp;</td>
                    <td>
                    </td>
                </tr>
                <s.iterator value="viewMap.get(#vkey)">
                <tr>
                    <td>房型名称:</td>
                    <td>
                        <s.property value="roomTypeName"/>
                    </td>

                    <td>价格:</td>
                    <td>
                        <s.iterator value="rates" id="rate">
                        <s.date format="yyyy-MM-dd" name="startDate"/> / <s.date name="endDate" format="yyyy-MM-dd"/>
                        &nbsp;&nbsp;纯房价:<s.property value="pureRoomFee"/>&nbsp;&nbsp;佣金<s.property value="commission"/>
                        </s.iterator>
                    </td>
                </tr>
                </s.iterator>
                </tr>
                </s.iterator>


这里id="vkey" vkey 就是这个Map的key
viewMap.get(#vkey) 的值就是List<HotelRoomTypeView>

如果是此map public Map<String, String> providerMap = new HashMap<String, String>();

就应该这样遍历
Java代码
<s.iterator value="providerMap">  
               <tr>  
                   <td>供应商:</td>  
                   <td>  
                       <s.property value="key"/>  
                   </td>  
                   <td><s.property value="value"/></td>  
               </tr>  
               </tr>  
               </s.iterator> 

嵌套Map的遍历应用

Map<String, Map<String, Integer>> appMap = new HashMap<String, Map<String, Integer>>();

<!--缩小搜索范围-->
<h2 class="tit1" title="缩小搜索范围"><span>缩小搜索范围</span></h2>

<div class="tycont sxsc">
<ul>
<s:if test="#application.appMap!=null">
 <s:iterator value="#application.appMap" id="vkey" >
   <!-- 获取酒店级别,类型等 -->
  <s:if test="#vkey==hotelStarMap">
    <li class="a1">酒店级别</li>
  </s:if>
   <s:if test="#vkey==hotelFacilityMap">
    <li class="a1">设施设备</li>
   
  </s:if>
   <s:if test="#vkey==hotelTypeMap">
    <li class="a1">酒店类型</li>
  </s:if>
   <s:iterator value="appMap.get(#vkey)" status="index" >
   <li class="<s:if test='#index.Event'>a2</s:if><s:else>a3</s:else>">
      <s:property value="key"/>(<s:property value="value"/>)
    </li>
   </s:iterator>
</s:iterator>
</s:if>
</ul>
</div>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics