struts标签遍历各种list Map

首先:从list开始。

每次在action中查询或者获取的值都要存放list中,为了方便每次都建立一个对象,这样可能造成项目的臃肿。对于简单的遍历我们可以尝试:

list<String> 后台直接复制就可以:

前台遍历时:<s:iterator value="list" var="tempList">
        <s:property value="#tempList"/>
      </s:iterator>

直接用var中的值,因为list<String>中没有名字

下面来说一下list<Map<String,String>>形式。相信有些特殊情况是要用到这种形式的,那么多层循环我们要这么解决呢?

  • <s:iterator id="map" value="resultList" status="state">   
  •     <s:iterator value="resultList[#state.index]">    
  •       Key : <s:property value="key" />   
  •       Value : <s:property value="value" />   
  •      </s:iterator>   
  • </s:iterator>

这样俩层循环就可以搞定,注意value="resultList" 如果取值取不到的话,请加上 value="#request.resultList"

这样就能获取到你想要遍历的值了。

list部分就到这里了,大家如果有疑问可以留言。

下面Map部分

首先普通Map<String,String>

<s:iterator value="#request.map">
            <s:property value="key"/>
            <s:property value="value"/>
        </s:iterator>

这样是不很清晰:下面来点有难度的:Map<String,List<TypeInfo>>
首先TypeInfo结构式这样的:

1.类型ID typeId
2.类型名称 typeName
3.父类型ID parentsId

 <s:iterator var="classificationroot" value="classifications['0']">  
                <li class="onefl">  
               <ul id="javabc">
<s:propertyvalue="#classificationroot.classificationId"/>">  
    <s:iterator var="classification" value="classifications[#classificationroot.classificationId]">  
<li class="twofl"><a href="#"><span><s:property value="#classification.typesName"/></span></a></li>                        </s:iterator>                     
    </s:iterator>  

第一个iterator是遍历根节点
第二个iterator是遍历属于该根节点的子节点

classifications Map对象的名称 classifications['0']去得key值是0的那个value就是所以根节点List 并遍历它去得根节点的typeId的值,然后通过第二个iterator遍历属于该根节点的子节点。
注意:第二个iterator的value属性value="classifications[#classificationroot.classificationId]" 的取值方式.

 

posted on 2013-11-22 14:40  谢皓宇  阅读(1505)  评论(0编辑  收藏  举报

导航