您的位置:首页 > 编程语言 > Java开发

struts标签遍历各种list Map

2013-11-22 14:40 483 查看
首先:从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]" 的取值方式.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: