Java Helloworld JSF2.0页面未呈现为html标记

Java Helloworld JSF2.0页面未呈现为html标记,java,jsf,jsf-2,Java,Jsf,Jsf 2,我是Java和JSF的新手。我正在使用EclipseIndigo、Tomcat6.0.3和JSF2.0 当我在浏览器中运行页面时,我只得到一个空页面,但我可以在firebug中找到它仍然在JSF标记本身中的元素。它不是以html呈现的 这是我的web.xml <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces

我是Java和JSF的新手。我正在使用EclipseIndigo、Tomcat6.0.3和JSF2.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>

问题在于JSFServlet的模式是
/app/*
。将模式更改为
*.jsf
并访问
http://localhost:8080/yourXhtmlFileName.jsf

试试本地主机:8080/app/ContactFormJSF。它取决于您在web.xml中配置的
。您的URL应该与模式匹配,以便Faces Servlet能够处理您的请求并呈现页面。

WEB-INF/lib
文件夹下有可能缺少库

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

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

您是否在web.xml文件上使用了以下标记

<welcome-file-list>
    <welcome-file>faces/index.xhtml</welcome-file>//you are missing "faces"
</welcome-file-list>
您正在使用
您应该使用
。以下是更正后的格式:

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


能否提供xhtml文件的代码?除此之外,这个问题已经存在。看看这个。或者是这个。我已经尝试了这些页面上提到的大部分内容,但都没有成功,因此我为此创建了一个新页面…您在浏览器中写入的完整url是什么?您访问这些页面的url格式是什么?有一些html元素可以单独看到,但没有jsf元素…这是默认后缀的工作-
javax.faces.default\u suffix.xhtml
。JSF将自动将JSF扩展转换为xhtml。是的,因为默认的_后缀已经在我的Web.XML中提到了。它不起作用,如果将url更改为localhost:8080/app/ContactFormJSF,我会得到404。应用程序的根路径是什么?尝试添加根路径。请检查我上面的Web.XML,我已经提到了您所说的所有元素…我认为您缺少
…请尝试。。。你能粘贴我的代码试试吗?请。。还可以使用url
localhost:8080/yourProjectName
@Khirthan查看我的更新答案。您缺少标签中的
,对不起,它仅在我的代码中是正确的,只是在这里它是错误的。。在我的代码中,它只是。。。所有的基本标记,如,仍然只呈现为“”。“…我在WEB-INF/lib中有jsf的所有jar,即jsf-impl.jar、jsf-api.jar、jstl.jar、commons-beanutils-1.7.0.jar、commons-chain-1.1.jar、commons-collections.jar、commons-logging-1.0.4.jar、commons-‌​蒸煮器-1.8罐。我是否应该添加其他内容?昨天你在帮我解决问题,我想是的,我解决了404错误,只更改了web.xml中的文件夹结构和url PSTARN。。。谢谢你…欢迎..如果你发了帖子,你在
eclipse
中有控制台错误吗
<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>
         <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>