`
qaybpljplj
  • 浏览: 21532 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JSF在web.xml中启动异常

阅读更多

首先讲解web.xml
    (1)其他地方没有什么要说的重要的是这里,如果你在xml中不加下面这一个监听
   <listener>
   <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
   </listener>
     就会出现 如下异常:
      严重: StandardWrapper.Throwable
     java.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>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics