posts - 6,  comments - 7,  trackbacks - 0

          使用JSF編寫(xiě)web程序的時(shí)候,JavaBean無(wú)法直接通過(guò)相對(duì)路徑來(lái)訪問(wèn)文件。經(jīng)過(guò)一天的研究主要發(fā)現(xiàn)兩類(lèi)解決方案,一是,通過(guò)FacesContext,二是,通過(guò)ClassLoader

          下面通過(guò)實(shí)例來(lái)說(shuō)明。

          首先是介紹web程序目錄的大致結(jié)構(gòu):

          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)號(hào)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文件的系統(tǒng)路徑,xmlfile為相對(duì)路徑

                   采用這個(gè)方法存在一些隱患:比方說(shuō)對(duì)一個(gè)打包的應(yīng)用來(lái)說(shuō),是沒(méi)有RealPath的概念的,調(diào)用getRealPath只會(huì)簡(jiǎn)單地返回null

                   2. getResourceAsStream():

          FacesContext context = FacesContext.getCurrentInstance();

          InputStream xmlStream = context.getExternalContext()

                        .getResourceAsStream(xmlfile);

              用于只讀的形式。

              二:ClassLoader

          獲得(1)號(hào)path-config.xml文件信息,

          代碼如下:

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

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

          //使用的時(shí)候還是存在一些問(wèn)題,無(wú)法正常使用,暫時(shí)沒(méi)有發(fā)現(xiàn)解決的辦法

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

                   //用于只讀的形式下,通過(guò)測(cè)試能夠正常的使用

          posted on 2008-02-29 17:36 zhan 閱讀(2105) 評(píng)論(2)  編輯  收藏

          FeedBack:
          # re: JSF web編程中的JavaBean路徑訪問(wèn)問(wèn)題
          2008-03-02 14:47 | xifu
          樓主強(qiáng)悍  回復(fù)  更多評(píng)論
            
          # re: JSF web編程中的JavaBean路徑訪問(wèn)問(wèn)題
          2015-11-05 15:31 | 人口水壽
          贊一個(gè)  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2015年11月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 广宁县| 南投市| 米泉市| 桓仁| 治县。| 绿春县| 武山县| 区。| 东乡族自治县| 通山县| 永新县| 岳西县| 天祝| 阿勒泰市| 大渡口区| 根河市| 江华| 崇左市| 九台市| 饶平县| 闽清县| 循化| 香格里拉县| 左贡县| 明光市| 高州市| 庄浪县| 大厂| 凤台县| 建阳市| 信宜市| 田东县| 永善县| 工布江达县| 泊头市| 礼泉县| 绥阳县| 沂水县| 齐河县| 手游| 江达县|