首先講解web.XML
(1)其他地方沒有什麼要說的重要的是這裡,如果你在XML中不加下面這一個監聽
- <listener>
- <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
- </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文件裡加入或者修改成這樣:
- <welcome-file-list>
- <welcome-file>index.faces</welcome-file>
- </welcome-file-list>
這該項的welcome-file內容改成index.faces就沒事了.
2.將index.jsp這個JSF文件改成home.JSp,然後,新建一個index.JSP文件,內容如下:
- <Html> <head></head><body>
- <JSP:forward page="home.faces" /></body></Html>
3.將index.jsp這個JSF文件直接改成home.JSp,即不為welcome-file文件.啟動時不會有任何錯誤的.當然你的 index.JSP不能為JSF文件.因為直接調用JSF頁面而不是使用Faces Servlet映射.就會出錯.
web.XML配置文件:
- <?XML version="1.0" encoding="UTF-8"?>
- <web-app XMLns="http://Java.sun.com/XML/ns/J2EE"
- XMLns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
- xsi:schemaLocation="http://Java.sun.com/XML/ns/J2EE
http://Java.sun.com/XML/ns/J2EE/web-app_2_4.xsd">- <display-name>JSF Demo</display-name>
- <description>JSF Demo</description>
- <context-param>
- <param-name>Javax.faces.CONFIG_FILES</param-name>
- <param-value>/WEB-INF/faces-config.XML</param-value>
- </context-param>
- <servlet>
- <servlet-name>FacesServlet</servlet-name>
- <servlet-class>Javax.faces.webapp.FacesServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>FacesServlet</servlet-name>
- <url-pattern>*.faces</url-pattern>
- </servlet-mapping>
- <listener>
- <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
- </listener>
- <welcome-file-list>
- <welcome-file>index.JSP</welcome-file>
- </welcome-file-list>
- </web-app>
- faces-config.XML配置文件
- <?XML version="1.0" encoding="UTF-8"?>
- <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.
//DTD JavaServer Faces Config 1.1//EN"
"http://Java.sun.com/dtd/web-facesconfig_1_1.dtd">- <faces-config>
- <!-- 流程控制 -->
- <navigation-rule>
- <from-vIEw-id>/home.JSP</from-vIEw-id>
- <navigation-case>
- <from-outcome>login</from-outcome>
- <to-vIEw-id>/welcome.JSP</to-vIEw-id>
- </navigation-case>
- <navigation-case>
- <from-outcome>fial</from-outcome>
- <to-vIEw-id>/home.JSP</to-vIEw-id>
- </navigation-case>
- </navigation-rule>
- <!-- 頁面管理 -->
- <managed-bean>
- <managed-bean-name>user</managed-bean-name>
- <managed-bean-class>com.UserBean</managed-bean-class>
- <managed-bean-scope>session</managed-bean-scope>
- </managed-bean>
- </faces-config>
【編輯推薦】