JSF文件在web.xml中啟動(dòng)異常
首先講解web.xml
(1)其他地方?jīng)]有什么要說(shuō)的重要的是這里,如果你在xml中不加下面這一個(gè)監(jiān)聽(tīng)
- <listener>
 - <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
 - </listener>
 
就會(huì)出現(xiàn) 如下異常:
嚴(yán)重: StandardWrapper.Throwablejava.lang.NullPointerException at javax.faces.webapp.FacesServlet
(2)JSF運(yùn)行時(shí)出現(xiàn)javax.servlet.jsp.JspException: Cannot find FacesContext
出現(xiàn)這種情況時(shí),有三種解決方案:
1.當(dāng)你的首頁(yè)文件是命名為index.jsp,在這個(gè)文件里用到JSF.即該文件屬于JSF文件.在J2EE里默認(rèn)的啟動(dòng)文件是:index.jsp文件.因此,當(dāng)啟動(dòng)程序時(shí),會(huì)對(duì)該文件進(jìn)行一些操作,可是JSF文件已在faces-config.xml時(shí)已映射為*.faces或*.jsf了.那么程序就會(huì)拋出javax.servlet.jsp.JspException: Cannot find FacesContext錯(cuò)誤.但程序仍然可以運(yùn)行的.
解決方法:在web.xml文件里加入或者修改成這樣:
- <welcome-file-list>
 - <welcome-file>index.faces</welcome-file>
 - </welcome-file-list>
 
這該項(xiàng)的welcome-file內(nèi)容改成index.faces就沒(méi)事了.
2.將index.jsp這個(gè)JSF文件改成home.jsp,然后,新建一個(gè)index.jsp文件,內(nèi)容如下:
- <html> <head></head><body>
 - <jsp:forward page="home.faces" /></body></html>
 
3.將index.jsp這個(gè)JSF文件直接改成home.jsp,即不為welcome-file文件.啟動(dòng)時(shí)不會(huì)有任何錯(cuò)誤的.當(dāng)然你的 index.jsp不能為JSF文件.因?yàn)橹苯诱{(diào)用JSF頁(yè)面而不是使用Faces Servlet映射.就會(huì)出錯(cuò).
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>
 - <!-- 頁(yè)面管理 -->
 - <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>
 
【編輯推薦】















 
 
 
 
 
 
 