2013-09-30 68 views
2

Im a Java和JSF中的全新功能。我使用eclipse Indigo和Tomcat 6.0.3和JSF 2.0。我的基本jsf標籤沒有渲染到html標籤中

當我在瀏覽器中運行頁面時,我只是得到一個空白頁面,但我可以在螢火蟲中的元素,它仍然在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> 

蔭掙扎這一個星期,我已經嘗試了很多東西在筆記中記下來..

我使用的URL是localhost:8080/ContactFormJSF/ 我可以看到上面添加在瀏覽器中的HTML標籤,但沒有t爲JSF標籤..

回答

0

其實,FacesServlet映射在你web.xml不包括.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> 
+0

蔭收到錯誤,如果我加入面孔SERVET和URL模式爲* .xhtml ava.lang.UnsupportedOperationExcept離子 \t javax.faces.application.Application.getResourceHandler(Application.java:254) \t javax.faces.webapp.FacesServlet.service(FacesServlet.java:640 – Khirthan

+0

在本類路徑JSF實現? – Omar

+0

是的JSF是在類路徑中實現的。 – Khirthan