源地址:
http://www.v5cn.cn
首先数据库的结构是这样的
1.类型ID typeId
2.类型名称 typeName
3.父类型ID parentsId
相当与一个树所以树根的parentsId都为0
属于该树根下的节点的parentsId都为该树的typeId
所以我从数据库查询出的结果放到Map里的结构是这样的
首先从数据库查询出来所以的树的根节点(就是parentsId等于0的)放到List中
然后把该List放入Map中键为“0”也就是parentsId列的值
接着遍历该List拿到每个根节点的typeId到数据库中查询属于根节点的子节点
并把属于该根节点的子节点保存到List中然后在把List保存的Map中键值是该子节点的parentsId值
页面遍历方式是:
<ul class="wzfl">
<li class="onefl"><a href="#"><span><strong>全部文章(123)</strong></span></a></li>
<s:iterator var="classificationroot" value="classifications['0']">
<li class="onefl">
<a href="javaScript:flkz('javabc<s:property value="#classificationroot.classificationId"/>')"><span><strong><s:property value="#classificationroot.typesName"/>(90)</strong></span></a>
<ul id="javabc<s:property value="#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>
</ul>
</li>
</s:iterator>
</ul>
第一个iterator是遍历根节点
第二个iterator是遍历属于该根节点的子节点
classifications Map对象的名称 classifications['0']去得key值是0的那个value就是所以根节点List 并遍历它去得根节点的typeId的值,然后通过第二个iterator遍历属于该根节点的子节点。
注意:第二个iterator的value属性value="classifications[#classificationroot.classificationId]" 的取值方式
分享到:
相关推荐
2. 遍历List<List<String>> 3. 遍历UserEntity 4. 遍历List<UserEntity> 遍历方法各有长短,若不是多表联接查询、显示表格的列数已经固定,一般用实体类(UserEntity)迭代的方式。相反,显示的数据表格行和列不确定...
NULL 博文链接:https://takeme.iteye.com/blog/1663239
其实只有一点struts2 iterator标签遍历二维数组
可以通过2种方法遍历HashMap<br><br>Map map = new HashMap();<br><br>for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) {<br><br> Map.Entry entry = (Map.Entry) iter.next();<br><br> Object ...
NULL 博文链接:https://takeme.iteye.com/blog/1663039
struts2中iterator 标签的使用详解
该文档代码讲述了如何在jsp页面iterator遍历数组、Map、List集合
<iterator>:迭代器 <list>:链表 <map>:映射 <memory>:内存管理 <optional>:可选值 <queue>:队列 <random>:随机数 <regex>:正则表达式 <set>:集合 <stack>:栈 <string>:字符串 <tuple>:元组 <unordered_...
在C++标准中,STL被组织为下面的几个头文件:<string>、<vector>、<list>、<deque>、<algorithm>、<iterator>、<set>、<map>、<memory>、<numeric>、<queue>、<functional>、<stack>和<utility>。文件中主要介绍了...
生成一个简单的iterator,并且使用iterator标签打印出内容。 <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}"> <s:iterator> <s:property /><br/> </s:iterator> </s:generator> 例2: 生成一个iterator,使用...
在C++标准中,STL被组织为下面的几个头文件:<string>、<vector>、<list>、<deque>、<algorithm>、<iterator>、<set>、<map>、<memory>、<numeric>、<queue>、<functional>、<stack>和<utility>。文件中主要介绍了...
在C++标准中,STL被组织为下面的几个头文件:<string>、<vector>、<list>、<deque>、<algorithm>、<iterator>、<set>、<map>、<memory>、<numeric>、<queue>、<functional>、<stack>和<utility>。文件中主要介绍了...
<%@ taglib uri="/struts-tags" prefix="s" %> 结合例子,重点掌握以下标签的用法 (1) <s:property> (2) <s:set> (3) <s:if> 、<s:elseif>、<s:else> (4) <s:iterator> (5) <s:include> (6) <s:form>、<s:hidden> (7...
<s:iterator value="list" status="st"> <tr> <td><s:property value="username"/></td> <td><s:property value="password"/></td> <td><s:property value="power"/></td> <td><s:property value="cdate"/></td> <td...
<s:iterator value="list" id="book" status="u"> <tr> <td> <s:property value="id" /> </td> <td> <s:property value="name" /> </td> <td> ...
<%@ taglib uri="/struts-tags" prefix="s" %> 结合例子,重点掌握以下标签的用法 (1) <s:property> (2) <s:set> (3) <s:if> 、<s:elseif>、<s:else> (4) <s:iterator> (5) <s:include> (6) <s:form>、<s:hidden> (7...
<FONT color=#0000ff>//方法一: 用entrySet() Iterator it = emails.entrySet().iterator(); while(it.hasNext()){ Map.Entry m=(Map.Entry)it.next(); logger.info("email-" + m.getKey() + ":" + m....
<%@ taglib prefix="s" uri="/struts-tags" %> 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. <s:a href=""></s:a>-----超链接,类似于html里的<a></a> 3. <s:...
<s:include value="../Struts2GotoPage.jsp"></s:include> <s:iterator value="goods" id="item" status="st"> <tr align="center"> <td >${st.index+1} </td> <td >${item.gsName }</td> <td >${item....