为什么jsf无法处理jsf错误页面?

时间:2011-10-20 08:15:54

标签: java jsp jsf jsf-2

我在error.jsf中提到了错误页面web.xml

<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/viewExpired.jsp</location>
</error-page>
<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/error.jsp</location>
</error-page>

如果文件是.jsf,则不会触发错误页面,当我将其更改为.jsp时,一切正常。 我还实现了一个过滤器,但仍然没有。

<filter>
    <filter-name>Error</filter-name>
    <filter-class>creazione.exception.MyFilter</filter-class>
</filter>

这是JSF无法处理的事情吗?

UPDATE web.xml中带有url-pattern映射的代码:

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>

1 个答案:

答案 0 :(得分:2)

如果您实际上将Facelets用作默认视图技术(如JSF 2.0中标准化),则会发生这种情况。您的问题历史记录还确认您使用的是Facelets而不是其旧的前置JSP。您还需要创建这些错误页面Facelets文件,而不是JSP文件。

过滤器不“正常”是由其他原因造成的。过滤器与JSF结合使用完全没有问题。