jsf java 2015_JSF web编程中的JavaBean路径访问问题

使用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 阅读(2002) 评论(2)  编辑  收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值