锁定老帖子 主题:求动态创建树的实例和方案
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-01-09
缺省情况只是得到全部的父亲节点,当点击父亲节点的时候,读取该父亲的儿子节点(不包括孙子),然后页面局部刷新,如此来展现。 我所知道的比较推荐的方法是用xloadtree来实现client-side,但是当 我点击父亲节点的时候,client-side javascript获得这个事件后,如何向服务端发出请求,并由服务端临时产生一个xml文件传回客户端,然后client-side javascript获取这个xml文件后,来展现儿子列表的过程一头雾水。 哪位高手有整个实例?感激不敬:) 网上的资料我实在是没有找到比较好的实例,尤其是关于 client-side javascript获得这个事件后,如何向服务端发出请求,并由服务端临时产生一个xml文件传回客户端,然后client-side javascript获取这个xml文件后 我只不过需要实现一个动态的树,如果是更好的实现方案,也欢迎多多建议。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-01-09
附件是我以前做的一个xloadtree的demo。
主要是需要设置contentType: response.setContentType("text/xml"); 然后输出xml内容即可。 这个demo只是演示了随机生成xml内容,将你的业务代码加入(比如从数据库获取资料),应该可以满足你的项目需求了。 下载附件,发布到任意jsp/servlet container, 访问 /xloadtree/index.jsp 可以看到demo。 |
|
返回顶楼 | |
发表时间:2004-01-09
论坛好像不能上传附件了,从这里下载吧:
http://quake.3322.org/temp/xloadtree.war |
|
返回顶楼 | |
发表时间:2004-01-09
谢谢提醒,已解决。
|
|
返回顶楼 | |
发表时间:2004-01-10
大恩不言谢:)
|
|
返回顶楼 | |
发表时间:2004-02-08
我把demo中的index.jsp的chartset设置为GBK或GB2312后,都为乱码。
请问如何解决中文字符问题呢? |
|
返回顶楼 | |
发表时间:2004-02-09
我是用UTF-8 + Resource Bundle来做多语言的,没有碰到中文的问题,但是对于GBK编码在JSP hardcode中文没有实际经验,不能帮你什么了。
网络上有很多关于中文乱码的资料,你google看吧,good luck。 |
|
返回顶楼 | |
发表时间:2004-03-05
Tomcat带个CharsetFilter,加到你App中试试,能解决JSp中的中文语言
|
|
返回顶楼 | |
发表时间:2004-03-09
我是如Quake Wang所说,将业务代码写在生成XML处,大体如下:
引用 public class TreeDataSeedServlet extends HttpServlet {
protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { defaultProcess(request, response); } protected void doPost( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { defaultProcess(request, response); } private void defaultProcess( HttpServletRequest request, HttpServletResponse response) throws IOException { long id = Integer.parseInt(request.getParameter("id")); Connection conn = ConnPoolHandler.getConnection(); String outStr = ""; try { outStr = createXMLFromDB(id, conn); //outStr=createXMLFromMock(id); } catch (Exception e) { // TODO 自动生成 catch 块 e.printStackTrace(); } response.setContentType("text/xml"); response.getWriter().write(outStr); } /** * 生成客户端需要的xml文档 * @param id * @param conn * @return * @throws SQLException */ private String createXMLFromDB(long id, Connection conn) throws SQLException { System.out.println("Eniter createXMLFromDB().............."); StringBuffer outSB = new StringBuffer(); outSB.append("<?xml version=\"1.0\"?>") .append("<tree>"); List list = DAOFactory .getDAOFactory(DAOFactory.DATABASE_ORACLE) .createTreeDAO() .getTreeArc( conn, id, 1); Iterator it=list.iterator(); Node node=new Node(); while(it.hasNext()){ node=(Node)it.next(); String name = node.getName(); long nodeID=node.getID(); boolean isLeaf=node.getIsLeaf(); System.out.println("........name="+name+"....... "); try { outSB.append("<tree text=\"") .append(name) .append("\""); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } if (!isLeaf) { outSB.append(" ") .append("src=\"tree.xml?id=") .append(nodeID) .append("\""); } outSB.append("/>"); } outSB.append("</tree>"); System.out.println(outSB.toString()); System.out.println("Exit createXMLFromDB().............."); return outSB.toString(); } 如果在生成的XML中存在中文字符,在XLOADTREE在显示时不正常,会弹出一个什么字符都没有的ALTER,我在jsp中有 <meta http-equiv="Content-Type" content="text/html; CHARSET=utf8" />,为什么????? |
|
返回顶楼 | |
发表时间:2004-03-09
我的那个demo里面没有指定编码,修改一下这句话:outSB.append("<?xml version=\"1.0\"?>")
用UTF-8: <?xml version="1.0" encoding="UTF-8"?> |
|
返回顶楼 | |