日期:2014-05-17 浏览次数:20678 次
? 利用DhtmlXtree实现展现,修改,添加,删除,移动功能一棵树上实现,iframe的单个滑动条显示,包含在iframe中树节点中文内容过长问题解决?
?
1、? 把数据库里的数据组成xml格式的字符串
在ComponentFavorFactory类中
??? /**
???? * 收藏文档列表树整理DHtmlXtree控件
???? */
??? public static String getFavorTree(String UserId,HttpServletRequest request){
?????? ApplicationContext ctx = WebApplicationContextUtils
?????? .getRequiredWebApplicationContext(request.getSession().getServletContext());
??????
?????? IFavoriteMgr favoriteMgr = (IFavoriteMgr)ctx.getBean("favoriteMgr");
?????? //查询UserId用户所拥有的收藏夹列表
?????? List userFavoriteList = favoriteMgr.getUserFavoriteDoc(UserId);
??????
?????? // StringBuffer来组装xml字符串
?????? StringBuffer strBuf = new StringBuffer("<?xml version='1.0' encoding='iso-8859-1'?><tree id='0'>");
??????
?????? // 设置数据源
?????? List nodeList = new ArrayList();
?????? Map root = new HashMap();
??????
?????? String rootid = "0";
?????? String rootName="默认收藏夹";
??????
??????? //这里主要是项目需要在每个用户还没有收藏任何文档,也没新建收藏夹前提下,自己为其建一个默认收藏夹。新收藏的文档首先默认放在默认收藏夹目录下,然后用户可根据自己的需要移动到用户自建的收藏夹目录下
?????? for(Iterator iter = userFavoriteList.iterator();iter.hasNext();){
?????????? FavoriteInfo favorite = (FavoriteInfo)iter.next();
?????????? if("默认收藏夹".equals(favorite.getFavorName())){
????????????? rootid = favorite.getFavorId();
????????????? rootName = favorite.getFavorName();
?????????? }
?????? }
??????
?????? strBuf.append(" <item text='"+rootName+"' id='rot"+rootid+"' open='1' im0='folder.gif' im1='openfolder.gif' im2='folder.gif' call='1' select='1'>");
??????
?????? //获取每个收藏夹下的文档列表
for(Iterator iter = userFavoriteList.iterator();iter.hasNext();){
?????????? FavoriteInfo favorite = (FavoriteInfo)iter.next();
??????????
??????????? //默认收藏夹下未归类的文档
?????????? if(rootid.equals(favorite.getFavorId())){
????????????? List userFavoriteDocList = favorite.getFavoriteDocList();
????????????? if(userFavoriteDocList!=null){
????????????????? for(Iterator iter2 = userFavoriteDocList.iterator();iter2.hasNext();){
???????????????????? FavoriteDocInfo favoriteDoc = (FavoriteDocInfo)iter2.next();
???????????????????? strBuf.append("<item text='"+favoriteDoc.getDocName()+"' id='doc"+favoriteDoc.getDocId()+"'? im0='file.gif' im1='file.gif' im2='file.gif'></item>");
????????????????? }
????????????? }
?????????? }else{
???????? //默认收藏夹下用户自建的收藏夹列表
?????????? strBuf.append("<item text='"+favorite.getFavorName()+"' id='fav"+favorite.getFavorId()+"' open='1' im0='folder.gif' im1='openfolder.gif' im2='folder.gif'>");
??????????
????????? //用户自建的收藏夹下的文档列表
?????????? List userFavoriteDocList = favorite.getFavoriteDocList();
?????????? if(userFavoriteDocList!=null){
????????????? for(Iterator iter2 = userFavoriteDocList.iterator();iter2.hasNext();){
????????????????? FavoriteDocInfo favoriteDoc = (FavoriteDocInfo)iter2.next();
????????????????? strBuf.append("<item text='"+favoriteDoc.getDocName()+"' id='doc"+favoriteDoc.getDocId()+"'? im0='file.gif' im1='file.gif' im2='file.gif'></item>");
????????????????? }
????????????? }
?????????? strBuf.append("</item>");
?????????? }
?????? }
?????? strBuf.append("</item>");??
?????? strBuf.append("</tree>");??
??? //? System.out.println(strBuf.toString());
?????? return strBuf.toString();
??? }
?
?? JSP页面:
????? 树显示的页面:
????? <%@ page language="java" pageEncoding="GBK" %>
<%@ page import="com.miracle.dm.doc.favorite.ComponentFavorFactory"%>