1

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

当我在浏览器中运行页面时,我只是得到一个空页面,但我可以在萤火虫中的元素仍然在 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-patternas*.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>

4

4 回答 4

0

问题是 JSF servlet 的模式是<url-pattern>/app/*</url-pattern>. 将模式更改为*.jsf并访问http://localhost:8080/yourXhtmlFileName.jsf

于 2013-09-24T06:23:59.673 回答
0

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

于 2013-09-24T06:27:35.667 回答
0

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

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

  • 确保您的 jar 在WEB-INF/lib目录下
于 2013-09-24T06:27:57.537 回答
0

您是否在 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必须由匹配的 end-tag 终止</f:view>

   <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>
于 2013-09-24T06:28:31.297 回答