JSF标签未呈现为HTML

时间:2019-06-20 17:10:36

标签: eclipse jsf-2 websphere-8

我使用JSF 2.2在Eclipse中创建了一个简单的Web应用程序,并通过WebSphere 8.5运行它。但是,当我使用http://localhost:9082/HCVA/index.xhtml在浏览器中向上拉索引页时,我只会得到一个空白页。我只使用JSF标签编写了整个网页,当我在调试器中查看时,我发现JSF标签未呈现为HTML。如果我添加了<p>test</p>之类的HTML标记,那么它会在浏览器中显示“测试”。这是到目前为止的整个索引页面:

<?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"
      xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
    <title>HCVA</title>
</h:head>
<h:body>
    <h:panelGroup id="header" layout="block" styleClass="headerClass">
        <h:graphicImage value="/images/NewOntarioLogo.gif" alt="Ontario Logo" border="0" />
        <h:outputText value="Health Card Viewer Application"/>
        <p>test</p>
    </h:panelGroup>

    <h:panelGroup id="navigate" layout="block">

    </h:panelGroup>

    <h:panelGroup id="mainContent" layout="block">

    </h:panelGroup>

    <h:panelGroup id="footer" layout="block" styleClass="footerClass">
        <h:graphicImage value="/images/NewOntarioLogo.gif" alt="Ontario Logo" border="0" />
        <br></br>
        <h:outputText value="This site is maintained by the Government of Ontario, Canada."/>
        <br></br>
        <h:link value="PRIVACY" outcome="http://www.ontario.ca/en/general/004222"/>
        <h:outputText value="|"/>
        <h:link value="IMPORTANT NOTICES" outcome="http://www.ontario.ca/en/general/004222"/>
        <br></br>
        <h:outputText value="Copyright information:"/>
        <h:link value="© Queen's Printer for Ontario, 2006" outcome="http://www.ontario.ca/en/general/004222"/>
        <br></br>
        <h:outputText value="Last Modified: 2009-12-12"/>
    </h:panelGroup>
</h:body>
</html>

我看过其他有关此的文章,并且我知道这个问题可能意味着该页面未通过FacesServlet传递。但是,我已验证所使用的请求URL与FacesServlet的url模式匹配。这是我的web.xml的样子:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
         version="3.0">
    <display-name>HCVA</display-name>
    <context-param>
        <description>
        The location where state information is saved.
Valid values are 'server' (typically saved in HttpSession) and 'client' (typically
saved as a hidden field in the form.
Default is server.</description>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>
    <context-param>
        <description>
        Comma-delimited list of context-relative resource paths under which the JSF implementation
will look for application configuration resources, before loading a configuration resource
named /WEB-INF/faces-config.xml (if such a resource exists).</description>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value></param-value>
    </context-param>
    <context-param>
        <description>
        The default suffix for extension-mapped resources that contain JSF components.
Default is '.jsp'.</description>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>
    <context-param>
        <description>
        A human readable string describing where this particular JSF application is
in the software development lifecycle.
Valid values are 'Development', 'UnitTest', 'SystemTest' and 'Production'.
Default is 'Production'.
This parameter is not available in JSF 1.x.</description>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <context-param>
        <description>
        Monitors Faces JSP files for modifications and synchronizes a running server with
the changes without restarting the server. If this parameter is set to false or
removed from the deployment descriptor, any changes made to Faces JSP files may
not be seen by the server until it is restarted. This parameter is usually set
to true while the Faces JSP files are being developed and debugged in order to
improve the performance of the development environment.</description>
        <param-name>com.ibm.ws.jsf.JSP_UPDATE_CHECK</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <description>
        Load JSF runtime when the application server starts up. If this parameter is set to false or removed,
JSF runtime will be loaded and initialized when the first JSF request is processed.
This may disable custom JSF extensions, such as factories defined in the project.</description>
        <param-name>com.ibm.ws.jsf.LOAD_FACES_CONFIG_AT_STARTUP</param-name>
        <param-value>true</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>-1</load-on-startup>
        <enabled>true</enabled>
        <async-supported>false</async-supported>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>
        *.xhtml</url-pattern>
    </servlet-mapping>
</web-app>

长期对它进行故障排除,没有结果。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:2)

WebSphere 8.5不提供JSF 2.2实现,仅提供通过SunRI的JSF 1.2和通过MyFaces的JSF 2.0。除非您提供第三方JSF实施,否则将需要更新您的应用程序以使用正确的JSF规范级别。