请教JAVAWEB大神

问题描述

我想建立如图所示的层次结构,但是做出来JSL遍历不出来。我是通过grandParent.add(headerNavListGrandParent);设置一级层,再headerNavListParent.setParent(headerNavListGrandParent);headerNavListGrandParent.getChild().add(headerNavListParent);设置二级层headerNavListChild.setParent(headerNavListParent);headerNavListParent.getChild().add(headerNavListChild);这是第三层,headerNavListChild.getChild().add(headerNavListNephew);headerNavListNephew.setParent(headerNavListChild);这是最后一层,编译能通过,但是不能遍历求解!源码:publicList<HeaderVO>getHeaderNav(){List<HeaderVO>headerNavList=newArrayList<HeaderVO>();DBConnectionDBC=newDBConnection();HeaderVOmyHeaderNav=null;Stringsql="select*fromTest";ResultSetrs;try{rs=DBC.executeQuery(sql);while(rs.next()){intid=rs.getInt("id");intpId=rs.getInt("pId");StringmyHeaderNavName=rs.getString("navName");myHeaderNav=newHeaderVO();myHeaderNav.setId(id);myHeaderNav.setpId(pId);myHeaderNav.setMyTmallName(myHeaderNavName);HeaderVOgrandParent=newHeaderVO();grandParent.setId(pId);myHeaderNav.setParent(grandParent);HeaderVOparent=newHeaderVO();parent.setId(pId);myHeaderNav.setParent(parent);HeaderVOnephew=newHeaderVO();nephew.setId(pId);myHeaderNav.setParent(nephew);headerNavList.add(myHeaderNav);}}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}finally{DBC.close();}returnwrapHeaderNavList(headerNavList);privateList<HeaderVO>wrapHeaderNavList(List<HeaderVO>headerNavList){List<HeaderVO>grandParent=newArrayList<HeaderVO>();if(headerNavList!=null&&headerNavList.size()>0){for(HeaderVOheaderNavListGrandParent:headerNavList){if(headerNavListGrandParent.getParent().getId()==0){grandParent.add(headerNavListGrandParent);for(HeaderVOheaderNavListParent:headerNavList){if(headerNavListParent.getParent().getId()==headerNavListGrandParent.getId()){headerNavListParent.setParent(headerNavListGrandParent);headerNavListGrandParent.getChild().add(headerNavListParent);for(HeaderVOheaderNavListChild:headerNavList){if(headerNavListChild.getParent().getId()==headerNavListParent.getId()){headerNavListChild.setParent(headerNavListParent);headerNavListParent.getChild().add(headerNavListChild);for(HeaderVOheaderNavListNephew:headerNavList){if(headerNavListNephew.getParent().getId()==headerNavListChild.getId()){headerNavListChild.getChild().add(headerNavListNephew);headerNavListNephew.setParent(headerNavListChild);}}}}}}}}}returngrandParent;}这是VO;publicclassHeaderVO{privateintid;privateintpId;privateStringmyTmallName;privateHeaderVOparent;privateList<HeaderVO>child=newArrayList<HeaderVO>();publicList<HeaderVO>getChild(){returnchild;}publicvoidsetChild(List<HeaderVO>child){this.child=child;}publicHeaderVOgetParent(){returnparent;}publicvoidsetParent(HeaderVOparent){this.parent=parent;}publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicintgetpId(){returnpId;}publicvoidsetpId(intpId){this.pId=pId;}publicStringgetMyTmallName(){returnmyTmallName;}publicvoidsetMyTmallName(StringmyTmallName){this.myTmallName=myTmallName;}}

解决方案

解决方案二:
补图
解决方案三:
好长。排版一下撒。你这是想要jstl嵌套遍历吗?怎么没有看到jstl遍历标签代码?
解决方案四:
VO类:packageTmall.com.VO;importjava.util.ArrayList;importjava.util.List;publicclassHeaderVO{privateintid;privateintpId;privateStringmyTmallName;privateHeaderVOparent;privateList<HeaderVO>child=newArrayList<HeaderVO>();publicList<HeaderVO>getChild(){returnchild;}publicvoidsetChild(List<HeaderVO>child){this.child=child;}publicHeaderVOgetParent(){returnparent;}publicvoidsetParent(HeaderVOparent){this.parent=parent;}publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicintgetpId(){returnpId;}publicvoidsetpId(intpId){this.pId=pId;}publicStringgetMyTmallName(){returnmyTmallName;}publicvoidsetMyTmallName(StringmyTmallName){this.myTmallName=myTmallName;}}

publicList<HeaderVO>getHeaderNav(){List<HeaderVO>headerNavList=newArrayList<HeaderVO>();DBConnectionDBC=newDBConnection();HeaderVOmyHeaderNav=null;Stringsql="select*fromTest";ResultSetrs;try{rs=DBC.executeQuery(sql);while(rs.next()){intid=rs.getInt("id");intpId=rs.getInt("pId");StringmyHeaderNavName=rs.getString("navName");myHeaderNav=newHeaderVO();myHeaderNav.setId(id);myHeaderNav.setpId(pId);myHeaderNav.setMyTmallName(myHeaderNavName);HeaderVOgrandParent=newHeaderVO();grandParent.setId(pId);myHeaderNav.setParent(grandParent);HeaderVOparent=newHeaderVO();parent.setId(pId);myHeaderNav.setParent(parent);HeaderVOnephew=newHeaderVO();nephew.setId(pId);myHeaderNav.setParent(nephew);headerNavList.add(myHeaderNav);}}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}finally{DBC.close();}returnwrapHeaderNavList(headerNavList);}privateList<HeaderVO>wrapHeaderNavList(List<HeaderVO>headerNavList){List<HeaderVO>grandParent=newArrayList<HeaderVO>();if(headerNavList!=null&&headerNavList.size()>0){for(HeaderVOheaderNavListGrandParent:headerNavList){if(headerNavListGrandParent.getParent().getId()==0){grandParent.add(headerNavListGrandParent);for(HeaderVOheaderNavListParent:headerNavList){if(headerNavListParent.getParent().getId()==headerNavListGrandParent.getId()){headerNavListParent.setParent(headerNavListGrandParent);headerNavListGrandParent.getChild().add(headerNavListParent);for(HeaderVOheaderNavListChild:headerNavList){if(headerNavListChild.getParent().getId()==headerNavListParent.getId()){headerNavListChild.setParent(headerNavListParent);headerNavListParent.getChild().add(headerNavListChild);for(HeaderVOheaderNavListNephew:headerNavList){if(headerNavListNephew.getParent().getId()==headerNavListChild.getId()){headerNavListChild.getChild().add(headerNavListNephew);headerNavListNephew.setParent(headerNavListChild);}}}}}}}}}returngrandParent;}

JSTL:<c:forEachitems="${myHeaderNav}"var="myHeaderNavs"><i><imgsrc="IMG/nav.png"></i><ahref="#">${myHeaderNavs.myTmallName}</a><b></b><divclass="headerNavDiv"><c:forEachitems="${myHeaderNavs.parent}"var="myHeaderNavParents"><divclass="headerNavDivListLeft"><p>${myHeaderNavParents.myTmallName}</p><c:forEachitems="${myHeaderNavParents.child}"var="myHeaderNavParentChilds"><olclass="headerleft"><c:forEachitems="${myHeaderNavParentChilds.nephew}"var="myHeaderNavnephews"><li><ahref="#">${myHeaderNavnephews.myTmallName}</a></li></c:forEach></ol></c:forEach><divclass="block"></div></div></c:forEach></c:forEach>

解决方案五:
你有把对象setAttribute()吗?我怎么没看到。你这是放哪个作用域了?
解决方案六:
你能把你使用的框架配置文件信息给看吗?"${myHeaderNavs.parent}"你这个得到是一个对象?还是一个属性?JSL是什么东西?你说的是JSTL吧
解决方案七:
importjava.util.*;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.*;importTmall.com.DAO.HeaderDAO;importTmall.com.VO.HeaderVO;publicclassIndexServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//TODOAuto-generatedmethodstubthis.doPost(req,resp);}@OverrideprotectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//TODOAuto-generatedmethodstubHeaderDAOheaderDAO=newHeaderDAO();List<HeaderVO>myTmall=headerDAO.getMyTmall();req.setAttribute("myTmall",myTmall);List<HeaderVO>myCollection=headerDAO.getCollection();req.setAttribute("myCollection",myCollection);List<HeaderVO>myHeaderNav=headerDAO.getHeaderNav();req.setAttribute("myHeaderNav",myHeaderNav);req.getRequestDispatcher("/index.jsp").forward(req,resp);}}

时间: 2024-10-24 17:58:22

请教JAVAWEB大神的相关文章

累加-请教各位大神什么是“乘积高位和乘积低位”?

问题描述 请教各位大神什么是"乘积高位和乘积低位"? 小白求教请问计算机原理中的Acc累加器中存储乘积高位 和MQ乘商寄存器的乘积低位怎么理解啊?能否请各位大神举个例子.本人有点迟钝,先谢谢各位了! 解决方案 比如说用两个16位的数来相乘,得到的积有可能是32位的,这就需要有两个16位的寄存器来放这个结果,一个放低16位,一个放高16位 解决方案二: 这里的16位全部都是用二进制表示的吧.两个16位二进制数的乘积是与逻辑(意义)还是就是和普通乘积一样的.还有你说的乘积有可能是32位数,

服务器-请教各位大神关于django部署的问题

问题描述 请教各位大神关于django部署的问题 各位大神,我把django部署在阿里云的服务器上面,admin页面一直提示404错误, 解决方案 向各位大神请教个问题 解决方案二: 出现这种情况,通常是文件urls.py中的urlpatterns出了问题,你将 url(r'^admin/', include(admin.site.urls)), 修改成 url(r'^admin$', include(admin.site.urls)), 再测试一下看看

兴趣-请教各位大神什么是复合视图模式

问题描述 请教各位大神什么是复合视图模式 我在学习Java web突然听到复合视图模式,特别疑惑它是个什么模式,所以请教各位大神 解决方案 http://my.oschina.net/jast90/blog/283254 多个视图组合起来的视图. 解决方案二: 请教各位大神!!!

xna-拜托拜托,各位大神,帮帮忙吧,小女请教各位大神一个关于FbxImporter的问题~~~

问题描述 拜托拜托,各位大神,帮帮忙吧,小女请教各位大神一个关于FbxImporter的问题~~~ 一个关于FbxImporter的问题,visual studio 2012里面的XNA的 windows game project,真的要崩溃了,处理了很久,找的很久的问题,都不知道是为什么~~~ 求各位大侠了,知道的话帮我指点指点吧~~ 解决方案 其实我就像在做游戏一样,之前用过dirextX但是没什么时间了,就还是选择了XNA,monogame其实也可以,blender建的3D摸,显示而已~~

插件框架 osgi mef-想请教下大神们插件式开发有什么好的插件框架?

问题描述 想请教下大神们插件式开发有什么好的插件框架? 我目前知道的有osgi,微软的maf.mef.除此之外还有些什么框架?还有目前应用最广泛的是什么框架 解决方案 Unity和MEF因为是微软出的,用的比较多一些.其实单纯插件系统,自己用反射就可以实现了.这些框架严格来说,是用于比较复杂的依赖注入(dependency injection)的.当然,插件系统也可以算依赖注入的一个用例. 解决方案二: dll plugin算不算 解决方案三: Unity Autofac Ninject Str

c语言-请教各位大神,为什么这个代码在普中板子上运行不了呢

问题描述 请教各位大神,为什么这个代码在普中板子上运行不了呢 #include #define uchar unsigned char #define uint unsigned int sbit A=P3^0; sbit B1=P3^1; sbit C=P3^2; sbit kin1=P0^0; sbit kin2=P0^1; sbit kin3=P0^2; sbit kin4=P0^3; sbit kout1=P0^4; sbit kout2=P0^5; sbit kout3=P0^6; s

请教各位大神了linux赋予新建子文件夹和文件root权限

问题描述 请教各位大神了linux赋予新建子文件夹和文件root权限 sudo setfacl -m u:root:rwx /upload_file/ 我使用了这个命令,但是发现子文件夹具有rwx权限但是子文件就只有rw 没有x权限,我想实现的是可以读写覆盖,但是这样的话,可以覆盖,但是属于受保护的文件, 不让修改, 解决方案 可以加上-R,递归的对所有文件及目录进行操作. 解决方案二: chown -R root:root pathname文件夹如果没有x权限就不能进入! [longyu@de

Oracle查询SQL语句,请教各位大神

问题描述 Oracle查询SQL语句,请教各位大神 有这样一些数据: name subject张三 语文 李四 数学 张三 数学 李四 英语 张三 历史 想得到的结果: name subject张三 语文,数学,历史 李四 数学,英语 请教SQL语句,各路大神帮忙思考下. 解决方案 SELECT name , wmsys.wm_concat (subject) as result FROM 表名 GROUP BY name 解决方案二: 这个主要用SQL语句将subject里的数据拼接成一个字符

oracle-在Linux下Python脚本进行数据抽取,请教各位大神怎么才能批量抽取。

问题描述 在Linux下Python脚本进行数据抽取,请教各位大神怎么才能批量抽取. #!/usr/bin/python -*- coding:utf-8 -*- import cx_Oracle import datetime import time import os from sys import * from string import * import tty, termios from dbipaddr import * if len(argv) !=2: print "Usage: