【问题标题】:Helloworld JSF2.0 Page is not rendering as html tagsHelloworld JSF2.0 页面未呈现为 html 标记
【发布时间】:2013-09-29 05:24:32
【问题描述】:

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

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

这是我的 web.xml

 <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>/app/*</url-pattern>
    </servlet-mapping>

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

    <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>

我已尝试将url-pattern 添加为*.xhtml,但它仍然不起作用。

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

<h:head>
        <title>Add New User Form</title>
</h:head>
    <h:body>
        <f:view>
             <h:form>
                     <h:outputText value="Age"></h:outputText>
                 </h:form>
            </f.view>
      </h:body>

【问题讨论】:

标签: java jsf jsf-2


【解决方案1】:

问题是JSF servlet 的模式是&lt;url-pattern&gt;/app/*&lt;/url-pattern&gt;。将模式更改为*.jsf 并访问http://localhost:8080/yourXhtmlFileName.jsf

【讨论】:

  • 这是默认后缀的工作 - &lt;param-name&gt;javax.faces.DEFAULT_SUFFIX&lt;/param-name&gt; &lt;param-value&gt;.xhtml&lt;/param-value&gt;。 JSF 会自动将 jsf 扩展名翻译成 xhtml。
  • 是的,因为我的 Web.XML 中已经提到了 DEFAULT_SUFFIX。
【解决方案2】:

WEB-INF/lib 文件夹下的库有可能丢失..

在大多数情况下,所需的 jar 将无法正确配置

  • 确保您的 jar 位于 WEB-INF/lib 目录下

【讨论】:

  • 我在 WEB-INF/lib 中有所有 jsf 的 jar,即 jsf-impl.jar、jsf-api.jar、jstl.jar、commons-beanutils-1.7.0.jar、commons-链 1.1.jar、commons-collections.jar、commons-logging-1.0.4.jar、commons-‌​digester-1.8.jar。我应该添加除此之外的任何其他内容吗??
  • 昨天你帮了我,我想是的,我通过更改 web.xml 中的文件夹结构和 url psttarn 解决了 404 错误...谢谢...
  • 欢迎您..您是否在eclipse 中收到任何控制台错误,如果您收到它们
【解决方案3】:

尝试 localhost:8080/app/ContactFormJSF。这取决于您在 web.xml 中配置的 &lt;url-pattern&gt;。您的 URL 应该与模式匹配,以便 Faces Servlet 可以处理您的请求并呈现页面。

【讨论】:

  • 它不起作用,如果将 url 更改为 localhost:8080/app/ContactFormJSF,我会得到 404。
  • 您的应用程序的根路径是什么?尝试添加根路径。
【解决方案4】:

您是否在 web.xml 文件中使用了以下标签?

<welcome-file-list>
    <welcome-file>faces/index.xhtml</welcome-file>//you are missing "faces"
</welcome-file-list>

完整的xml文件:

<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</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>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<welcome-file-list>
    <welcome-file>faces/pages/index.xhtml</welcome-file>
</welcome-file-list>

更新

元素类型f:view必须以匹配的结束标签&lt;/f:view&gt;结束。

   <f:view>
         <h:form>
                 <h:outputText value="Age"></h:outputText>
         </h:form>
   </f.view>   //Here it should be </f:view>

您正在使用.,您应该使用:。以下是更正后的格式:

   <f:view>
         <h:form>
                 <h:outputText value="Age"></h:outputText>
         </h:form>
   </f:view>

【讨论】:

  • 请检查我上面的Web.XML,我已经提到了你所说的所有元素......
  • 我认为您缺少faces...ues 并尝试...您可以粘贴我的代码并尝试吗?请...并且还使用url localhost:8080/yourProjectName
  • @Khirthan 查看我的更新答案。你在标签&lt;/f:view中缺少:
  • 对不起,它只在我的代码中是正确的,只是在这里它是错误的..在我的代码中它只是 ...所有基本标签,如 , 仍然只呈现为 "", ""...
猜你喜欢
  • 2015-01-20
  • 2012-12-08
  • 2013-08-19
  • 2011-01-13
  • 1970-01-01
  • 2020-01-09
  • 2021-12-18
  • 2013-05-17
  • 1970-01-01
相关资源
最近更新 更多