JSF标记未在XHTML页面中呈现

时间:2014-11-30 14:42:53

标签: jsf xhtml web.xml jsf-2.2 tomcat8

我开发了一个基于JSF的Web应用程序。我使用NetBeans IDE 8.0.1开发了这些应用程序,并且依赖于捆绑的Tomcat以及IDE,即Tomcat 8.0.9.0。

嗯,一切都很好。此外,当我在独立的Tomcat版本上尝试该项目时,一切都还可以。 当我将我的Web应用程序上传到在线Web服务器时,问题就出现了。

问题如下。请求网站URL时,一切正常,JSF标签正确呈现。但是,当尝试在浏览器的地址栏中请求特定页面(按其名称)时,没有显示任何内容(即,JSF标记未在请求的页面中呈现)。

当我查看生成的XHTML页面的源代码时,我发现JSF标签没有被解释 - 完全由Faces Servlet解释(即,JSF标签无法传输到它们的等效HTML标签)。在按名称请求页面时,Faces Servlet似乎无法理解甚至无法识别JSF标记。

这是我的(web.xml)文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>

这是我的演示(index.xhtml)页面:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:outputFormat value="hello there" />
    </h:body>
</html>

同样,问题发生在在线Tomcat 8版本中。键入:my-domain.com时,index.xhtml中的JSF标记(默认页面)将在结果中呈现。

但是,当绑定my-domain.com/index.xhtml时,回复中没有呈现任何内容。

0 个答案:

没有答案