本文配套源码
通过上一篇文章(dom4j实战(一)——使用dom4j从XML中读取数据源配置),使我们对dom4j有了一些初步的认识和了解,也掌握了基本的操作方法,本文将承接前篇,借鉴Openfire项目中菜单设计的优点,结合我们自己的需求,通过一个小实例,来说明一下如何使用dom4j来实现这个功能。
可以在http://www.igniterealtime.org/downloads/index.jsp 这里下载到Openfire的发布版和源码版,Openfire的介绍在这里不作描述,网上相关的资料有很多,有兴趣的朋友可以下载源码研究一下,其实不了解Openfire也没关系,因为我们只是借鉴其中的一些思想,等做完了实例,就会有一个比较直观的认识。
大象建议先在最后面下载源码和必要的JAR包,让程序运行起来看下效果,再看下面的详细说明。
开发环境:Eclipse 3.2.1 MyEclipse 5.10GA Tomcat 6.10
dom4j-1.6.1.jar jaxen-1.1-beta-7.jar sitemesh-2.2.1.jar
1、创建tag-console.xml
在src目录下建一个tag-console.xml文件,这个配置文件中写的是菜单信息,内容如下:
<?xml version="1.0" encoding="GBK"?>
<bookstore>
<global>
<appname>菜单导航demo</appname>
<version>ver 1.0</version>
<creator>菠萝大象</creator>
</global>
<catalog id="catalog-program" name="编程开发" url="index.jsp" description="编程开发">
<item id="item-program-java" name="Java开发" url="index.jsp" description="Java开发">
<book id="695043" name="Struts2 深入详解" url="index.jsp" description="Struts2 深入详解"/>
<book id="691254" name="Ant整合开发" url="book_ant.jsp" description="Ant整合开发"/>
<book id="693668" name="Java编程思想" url="book_java.jsp" description="Java编程思想"/>
</item>
<item id="item-program-database" name="数据库开发" url="book_oracle9.jsp" description="数据库开发">
<book id="691245" name="Oracle 9i数据库宝典" url="book_oracle9.jsp" description="Oracle 9i数据库宝典"/>
<book id="693254" name="SQL Server 2005应用开发" url="book_sqlserver.jsp" description="SQL Server 2005应用开发"/>
<book id="690215" name="Oracle 10g高级开发" url="book_oracle10.jsp" description="Oracle 10g高级开发"/>
</item>
</catalog>
<catalog id="catalog-system" name="系统相关" url="book_vista.jsp" description="系统相关">
<item id="item-system-windows" name="Windows系统" url="book_vista.jsp" description="Windows系统">
<book id="691258" name="Windows Vista入门" url="book_vista.jsp" description="Windows Vista入门"/>
<book id="695489" name="Windows注册表实战" url="book_windows.jsp" description="Windows注册表实战"/>
</item>
<item id="item-system-linux" name="Linux系统" url="book_linux9.jsp" description="Linux系统">
<book id="696598" name="Linux 9.0详解" url="book_linux9.jsp" description="Linux 9.0详解"/>
<book id="694585" name="Linux宝典" url="book_linux.jsp" description="Linux宝典"/>
</item>
</catalog>
</bookstore>
上面XML里面的东西我是随便写的,大家千万不要较真,我用图书来做菜单一是方便大家理解,另一个是简化程序,其实Openfire的服务器端是一个后台管理系统,它是基于XMPP(可扩展消息处理现场协议)开发的,XMPP贯穿整个系统设计,如果你想用它的控制台框架,但又不想用XMPP,请先从网页入口开始,结合页面仔细分析代码,把需要的部分抽取出来就行了,其它的不用去管。大象没有研究过XMPP,只是抽取了控制台框架,对Openfire的源代码也没能深入的研究,最主要还是E文太烂了。^_^
Openfire没有采用现在很流行的技术架构(SSH),只使用JSP+JavaBean,但是它有自己的系统设计,就连日志都是自己做的,没有使用我们熟悉的log4j,真的是太佩服鸟~~~~