2014-01-13 102 views
0

我想使用JSF的一個項目(我剛開始學習),我用這個例子startwdJSF不工作

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

<head> 
    <title>JSF Tutorial!</title> 
</head> 
<body> 
    <h2>h:inputText example</h2> 
    <hr /> 
    <h:form> 
     <h3>Read-Only input text box</h3> 
     <h:inputText value="Hello World!" readonly="true"/> 
     <h3>Read-Only input text box</h3> 
     <h:inputText value="Hello World"/> 
    </h:form> 
</body> 

</html> 

但是,當我加載網頁,我只能看到文本,輸入字段不appear.i

作爲服務器,我使用的Apache Tomcat 7.0與Eclipse IDE

+0

很多問題在這裏:你的web.xml如何配置?這個文件的擴展名是什麼?你把所有的LIB放在WEB-INF/libs文件夾中嗎? –

+0

我想你應該使用h:body –

+0

這個文件是一個.xhtml文件。我的libs文件夾是空的(不應該ide添加庫當我創建新項目?) web xml看起來像這樣 '(<?xml version =「1.0」encoding =「UTF-8」? > TrafficSystem )' – user1833671

回答

0

目前您的inputText沒有解釋(當您在瀏覽器中打開您的網頁源代碼,你會發現在那裏平原h:inputText標籤)。

請確保您的web.xmlfaces-config.xml被正確填充。 (例如,您web.xml包括Servlet的面孔,像...)

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

雖然像JBoss應用服務器通常會帶來庫用於JSF預裝,爲的Apache Tomcat Web容器,你必須添加庫對於JSF - 通過手動將需要的JAR複製到Tomcat目錄/lib - 或通過配置IDE將其打包到項目中將WAR傳遞到tomcat(它們將存儲在JAR的/WEB-INF/lib目錄中)。

Eclipse WTP例如右鍵單擊「項目屬性」 - >「部署程序集」,進入配置對話框。

+0

爲什麼在'* .xhtml'上沒有映射? – BalusC

+0

好問題。當前項目我copy'n'pasted代碼使用jsf作爲擴展名;-)映射到* .xhtml當然也是可能的。 –

+0

按照此鏈接http://stackoverflow.com/questions/4441713/migrating-from-jsf-1-2-to-jsf-2-0/21227775#21227775 – Pravin