1

我之前在这里发布过关于如何使用 jsf 为两个用户制作 tic tac toe 的帖子,并且我得到了这个很棒的 taglib Primefaces 的链接。对于我需要做的事情来说,它绝对是完美的,但我一直在努力让它做任何事情,甚至从他们的网站上渲染示例。

所以我一直在关注我发现的这个教程(遗憾的是,关于 Primefaces 主题的教程并不多):http ://java.dzone.com/articles/primefaces-quickstart-tutorial 一步一步,我做了根据本教程的所有内容,但是当我运行它时,它每次都会呈现一个空页面。

于是我从官网试了一个更简单的例子:http: //www.primefaces.org/gettingStarted.html

这(test.xhtml):

 <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:p="http://primefaces.org/ui">
    <h:head>
    </h:head>   
<h:body>    
<p:spinner />   
</h:body>
</html>

呈现一个空页面,而这个:

 <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:p="http://primefaces.org/ui">
    <h:head>
    </h:head>   
<h:body>
test test test test
<p:spinner />   
</h:body>
</html>

仅呈现“测试测试测试测试”文本。

所以我想问题一定出在标签上,tomcat 看不到它们/不知道如何解释它们。但是,根据教程和 primefaces 网站,我需要做的就是像我所做的那样将罐子放在 WEB-INF/lib 中(顺便说一下,我使用的是 Eclipse,我创建的空项目是“Dynamic Web项目”)。在我的 WEB-INF/lib 我有以下罐子:

jsf-api-2.0.3.jar

jsf-impl-2.0.3.jar

jstl-1.0.2.jar

primefaces-3.3.RC1.jar

如果有任何帮助,这里是tomcat控制台的内容:

    2012-05-27 13:18:11 org.apache.catalina.core.AprLifecycleListener init
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in                         production environments was not found on the java.library.path:         .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
    2012-05-27 13:18:12 org.apache.tomcat.util.digester.SetPropertiesRule begin
    WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Primefaces1' did not find a matching property.
    2012-05-27 13:18:12 org.apache.coyote.http11.Http11Protocol init
    INFO: Initializing Coyote HTTP/1.1 on http-8080
    2012-05-27 13:18:12 org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 1127 ms
    2012-05-27 13:18:12 org.apache.catalina.core.StandardService start
    INFO: Starting service Catalina
    2012-05-27 13:18:12 org.apache.catalina.core.StandardEngine start
    INFO: Starting Servlet Engine: Apache Tomcat/6.0.35
    2012-05-27 13:18:13 com.sun.faces.config.ConfigureListener contextInitialized
    INFO: Initializing Mojarra 2.0.3 (SNAPSHOT 20100726) for context '/Primefaces1'
    2012-05-27 13:18:17 org.primefaces.webapp.PostConstructApplicationEventListener processEvent
    INFO: Running on PrimeFaces 3.3.RC1
    2012-05-27 13:18:17 org.apache.coyote.http11.Http11Protocol start
    INFO: Starting Coyote HTTP/1.1 on http-8080
    2012-05-27 13:18:17 org.apache.jk.common.ChannelSocket init
    INFO: JK: ajp13 listening on /0.0.0.0:8009
    2012-05-27 13:18:17 org.apache.jk.server.JkMain start
    INFO: Jk running ID=0 time=0/63  config=null
    2012-05-27 13:18:17 org.apache.catalina.startup.Catalina start
    INFO: Server startup in 5096 ms

可能是什么情况?我是不是把罐子放错了地方,是tomcat失败还是完全是别的什么?

4

1 回答 1

1

好的,我解决了,也许有一天有人会发现这很有用。

因此,当使用带有 JSF 的 Primefaces 时,不仅网页文件必须具有 .xhtml 扩展名(我在这里找到的解决方案:http: //www.coderanch.com/t/473437/JSF/java/not-allowed -template-text),但也必须修改 web.xml 文件(我在这里找到的解决方案:Simple primefaces application not working),如下所示:

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

现在它工作得很好。

于 2012-05-27T12:25:50.187 回答