程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> JSF文件在web.xml中啟動異常

JSF文件在web.xml中啟動異常

編輯:J2EE

首先講解web.XML

(1)其他地方沒有什麼要說的重要的是這裡,如果你在XML中不加下面這一個監聽

  1. <listener> 
  2. <listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
  3. </listener> 

就會出現 如下異常:
嚴重: StandardWrapper.Throwablejava.lang.NullPointerException at Javax.faces.webapp.FacesServlet

(2)JSF運行時出現Javax.servlet.JSp.JSPException: Cannot find FacesContext

出現這種情況時,有三種解決方案:

1.當你的首頁文件是命名為index.jsp,在這個文件裡用到JSF.即該文件屬於JSF文件.在J2EE裡默認的啟動文件是:index.JSP文件.因此,當啟動程序時,會對該文件進行一些操作,可是JSF文件已在faces-config.XML時已映射為*.faces或*.JSf了.那麼程序就會拋出Javax.servlet.JSp.JSPException: Cannot find FacesContext錯誤.但程序仍然可以運行的.

解決方法:在web.XML文件裡加入或者修改成這樣:

  1. <welcome-file-list> 
  2.    <welcome-file>index.faces</welcome-file> 
  3.  </welcome-file-list> 

這該項的welcome-file內容改成index.faces就沒事了.

2.將index.jsp這個JSF文件改成home.JSp,然後,新建一個index.JSP文件,內容如下:

  1. <Html> <head></head><body> 
  2. <JSP:forward page="home.faces" /></body></Html> 


3.將index.jsp這個JSF文件直接改成home.JSp,即不為welcome-file文件.啟動時不會有任何錯誤的.當然你的 index.JSP不能為JSF文件.因為直接調用JSF頁面而不是使用Faces Servlet映射.就會出錯.

web.XML配置文件:

  1. <?XML version="1.0" encoding="UTF-8"?> 
  2. <web-app XMLns="http://Java.sun.com/XML/ns/J2EE" 
  3. XMLns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" 
  4. xsi:schemaLocation="http://Java.sun.com/XML/ns/J2EE   
    http://Java.sun.com/XML/ns/J2EE/web-app_2_4.xsd"
    > 
  5. <display-name>JSF Demo</display-name> 
  6. <description>JSF Demo</description> 
  7. <context-param> 
  8.    <param-name>Javax.faces.CONFIG_FILES</param-name> 
  9.    <param-value>/WEB-INF/faces-config.XML</param-value> 
  10. </context-param> 
  11. <servlet> 
  12.    <servlet-name>FacesServlet</servlet-name> 
  13.    <servlet-class>Javax.faces.webapp.FacesServlet</servlet-class> 
  14.    <load-on-startup>1</load-on-startup> 
  15. </servlet> 
  16. <servlet-mapping> 
  17.    <servlet-name>FacesServlet</servlet-name> 
  18.    <url-pattern>*.faces</url-pattern> 
  19. </servlet-mapping> 
  20. <listener> 
  21.    <listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
  22. </listener> 
  23. <welcome-file-list> 
  24.    <welcome-file>index.JSP</welcome-file> 
  25. </welcome-file-list> 
  26. </web-app> 
  27.  
  28. faces-config.XML配置文件  
  29.  
  30. <?XML version="1.0" encoding="UTF-8"?> 
  31. <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.
    //DTD JavaServer Faces Config 1.1//EN" 
    "http://Java.sun.com/dtd/web-facesconfig_1_1.dtd"> 
  32.  
  33. <faces-config> 
  34. <!-- 流程控制 --> 
  35. <navigation-rule> 
  36.    <from-vIEw-id>/home.JSP</from-vIEw-id> 
  37.    <navigation-case> 
  38.     <from-outcome>login</from-outcome> 
  39.     <to-vIEw-id>/welcome.JSP</to-vIEw-id> 
  40.    </navigation-case> 
  41.    <navigation-case> 
  42.     <from-outcome>fial</from-outcome> 
  43.     <to-vIEw-id>/home.JSP</to-vIEw-id> 
  44.    </navigation-case> 
  45. </navigation-rule> 
  46. <!-- 頁面管理 --> 
  47. <managed-bean> 
  48.    <managed-bean-name>user</managed-bean-name> 
  49.    <managed-bean-class>com.UserBean</managed-bean-class> 
  50.    <managed-bean-scope>session</managed-bean-scope> 
  51. </managed-bean> 
  52. </faces-config> 

【編輯推薦】

  1. JSF基礎框架
  2. 使用G4JSF集成GWT和JSF
  3. 過渡技術的AJax及Apusic JSF
  4. NetBeans中JSF的可視化開發
  5. 詳細介紹Seam Remoting API和AJax4JSf
【責任編輯:志京 TEL:(010)68476606】
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved