【问题标题】:My Basic jsf tags are not rendering in to html tags我的基本 jsf 标签未呈现为 html 标签
【发布时间】:2013-10-06 01:56:26
【问题描述】:

我是 Java 和 JSF 的新手。我正在使用 eclipse Indigo 和 Tomcat 6.0.3 和 JSF 2.0。

当我在浏览器中运行页面时,我只是得到一个空页面,但我可以在 firebug 中看到它仍然在 JSF 标记本身中的元素。它没有在 html 中呈现..

这是我的 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

    <display-name>ContactFormJSF</display-name>

    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>

    <welcome-file-list>
        <welcome-file>pages/index.xhtml</welcome-file>
    </welcome-file-list>

    <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>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.DEFAULT_SUFFIX</param-name>
        <param-value>*.xhtml</param-value>
    </context-param>
    <session-config>
        <session-timeout>15</session-timeout>
    </session-config>
</web-app>

这是我的基本 JSF 内容

<?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://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">

<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Add New User Form</title>
</h:head>
    <h:body>
        <f:view>
        <h:form>
            <h:panelGrid border="1" columns="3">
                <h:outputText value="Name"></h:outputText>
                <h:inputText value="#{userBean.name}" required="true"></h:inputText>
                <h:outputText value="D.O.B"></h:outputText>
                <h:inputText id="DOB" value="#{userBean.dob}" required="true"> </h:inputText>
                <h:outputText value="Age"></h:outputText>
                <h:inputText id="age" value="#{userBean.age}" required="true"> </h:inputText>
                <h:commandButton action="#{userBean.addUser}" value="Submit"></h:commandButton>
                <input type="reset"/>
                <h:commandButton action="#{userBean.reset}" value="Reset"> </h:commandButton>
            </h:panelGrid>
        </h:form>
        </f:view>
    </h:body>
</html>

我为此苦苦挣扎了一周,我已经尝试了许多在 stackoverflow 中记录的东西..

我使用的 URL 是 localhost:8080/ContactFormJSF/ 我可以在浏览器中看到上面添加的 HTML 标签,但看不到 jsf 标签..

【问题讨论】:

    标签: html jsf jsf-2


    【解决方案1】:

    实际上,您的web.xml 中的FacesServlet 映射并没有涵盖.xhtml 文件,因此您应该在配置文件中添加正确的映射:

    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
    

    另一方面,您应该检索它以让 JSF 控制器识别您项目中的 .xhtml 文件:

    <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>*.xhtml</param-value>
    </context-param>
    

    【讨论】:

    • 如果我将 Faces Servet 和 url-pattern 添加为 *.xhtml ava.lang.UnsupportedOperationException javax.faces.application.Application.getResourceHandler(Application.java:254) javax.faces,则会出现错误。 webapp.FacesServlet.service(FacesServlet.java:640
    • 类路径中的 JSF 实现是否存在?
    • 您是否实施了正确的版本?你能把异常的细节说出来吗?
    • 我假设您从 &lt;welcome-file&gt; 标记中删除了 /pages。另外,您可以从web.xml 中删除不必要的映射,例如*.faces 和/faces/*,有时它们会造成麻烦,一个映射就足够了。
    • 在 web.xml 文件中包含 /faces/* 接受 *.xhtml 文件,因此无需为此添加另一个映射。
    猜你喜欢
    • 2011-02-15
    • 2015-01-20
    • 2012-12-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2011-01-13
    • 2018-01-08
    相关资源
    最近更新 更多