2014-01-13 53 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