这次我们主要讲一下用dom4j文件读取中过程中的路径问题。关于dom4j读取XML文件路径问题,其原因主要不在于dom4j,而在于web项目发布之前的文件和web项目发布后的文件在位置上发生变化导致了路径问题的产生。

 

Web项目发布之前

     为了更好的解释这种现象,我在首先项目中创建了几个xml文件,如下图所示:

Struts学习 之 XML文件读取路径问题_web项目

 

     在上图中,file1.xml位于test包中;file2.xml位于src目录下;file3.xml位于WEB-INF文件夹下;file4.xml位于WebRoot文件夹下;file5.xml位于项目XmlTest下与src同级。

 

Web项目发布之后 

     了解了Web项目发布之前的文件位置之后,我们再来看一下Web项目发布之后的文件位置和能够找到的文件都有哪些?

 

file5.xml 

     我们从最外层看xml文件的变化。首先,打开项目文件夹XmlTest,可以看出位于项目XmlTest下与src同级的file5.xml文件,在web项目发布之后就找不到了,所以如果读取file5.xml文件肯定会出错的!如下图所示:

Struts学习 之 XML文件读取路径问题_xml_02

 

file4.xml 

     接下来,我们看一下file4.xml文件夹,可以看出位于项目中WebRoot中的file4.xml文件将直接位于项目XmlTest文件下。如上图所示。

 

file3.xml 

     打开Web-INF文件夹,我们依然能够在其中找到file3.xml文件,所以我们得出结论位于WEB-INF文件夹下的文件file3.xml文件位置相对不变。

Struts学习 之 XML文件读取路径问题_项目发布_03

 

file2.xml

     通过分析XmlTest文件夹我们可以看出,我们找不到src文件夹,那么src文件夹到哪里去了呢?其实src文件夹在web项目发布之后就会将*.java的文件编译,编译完成之后的文件将位于WEB-INF/classes文件下,所以我们得出结论位于src文件夹下的文件,经过项目编译后将位于WEB-INF/classes文件下,其相对文件位置不变。如下图所示

Struts学习 之 XML文件读取路径问题_xml_02

 

Struts学习 之 XML文件读取路径问题_xml_05

 

file1.xml 

     还剩最后一个file1.xml文件,其实我们根据上面的解释可以猜测出,位于包中的file1.xml在项目发布之后,其位置相对于包不变,只是将包变成文件夹。如下图所示:

Struts学习 之 XML文件读取路径问题_xml文件_06

 

     到目前位置我们已经基本上可以看出,web项目发布之前和发布之后一些文件的变化,这对于我们分析项目路径,对一些文件进行操作至关重要。

     分析完毕路径问题之后,读取xml文件就变得简单了,这里不再赘述,下次我们将介绍一下Struts框架的几个重要概念。