posts - 6,  comments - 7,  trackbacks - 0

使用JSF编写web程序的时候,JavaBean无法直接通过相对路径来访问文件。经过一天的研究主要发现两类解决方案,一是,通过FacesContext,二是,通过ClassLoader

下面通过实例来说明。

首先是介绍web程序目录的大致结构:

D:"......"Tomcat 6.0"webapps"imatrixb ------> 程序的更目录

         --META-INF

         --WEB-INF

         ---------------classess

         ---------------------------cn

         ----------------------------------com

         --------------------------------------------……                        ----------->class 文件

         ---------------------------XmlData

         ---------------------------------path-config.xml           1

                  --------------- path-config.xml                                           2

…….

Index.jsp

一:FacesContext

获得(2)号path-config.xml文件信息,

代码如下:

String partPath=”/ WEB-INF/ path-config.xml”;

1. getRealPath():

FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest rst = (HttpServletRequest)context.getExternalContext().getRequest();
String fullPath=rst.getRealPath(xmlfile); //
获得xml文件的系统路径,xmlfile为相对路径

         采用这个方法存在一些隐患:比方说对一个打包的应用来说,是没有RealPath的概念的,调用getRealPath只会简单地返回null

         2. getResourceAsStream():

FacesContext context = FacesContext.getCurrentInstance();

InputStream xmlStream = context.getExternalContext()

              .getResourceAsStream(xmlfile);

    用于只读的形式。

    二:ClassLoader

获得(1)号path-config.xml文件信息,

代码如下:

String partPath =”/XmlData/path-config.xml”;

String fullPath=this.getClass().getClassLoader().getResource(partPath).getPath();

//使用的时候还是存在一些问题,无法正常使用,暂时没有发现解决的办法

InputStream xmlStream=this.getClass().getClassLoader().getResourceAsStream(partPath);

         //用于只读的形式下,通过测试能够正常的使用

posted on 2008-02-29 17:36 zhan 阅读(2085) 评论(2)  编辑  收藏

FeedBack:
# re: JSF web编程中的JavaBean路径访问问题
2008-03-02 14:47 | xifu
楼主强悍  回复  更多评论
  
# re: JSF web编程中的JavaBean路径访问问题
2015-11-05 15:31 | 人口水寿
赞一个  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

常用链接

留言簿(1)

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜