【问题标题】:Does primefaces work with facelets?primefaces 可以与 facelets 一起使用吗?
【发布时间】:2012-04-16 19:03:09
【问题描述】:

我正在使用运行在 tomcat 服务器上的 JSF 2.0 构建 Java Web 应用程序。我正在使用facelets1.1.10。我最近看到了primefaces 可以做什么,我对此印象非常深刻。所以我想将 primefaces 添加到我的网络项目中。

我从网站上下载了primefaces3.2.jar 并将其添加到我的项目 lib 文件夹(我保存所有 jar 文件的地方)。并将其添加到我的构建路径中。但是当测试它以查看 primefaces 是否有效时,我收到以下错误:

严重:加载库时出错: jar:file:/C:/tomcat/wtpwebapps/miloWeb/WEB-INF/lib/primefaces-3.2.jar!/META-INF/primefaces-p.taglib.xml java.io.IOException:解析错误 [jar:file:/C:/tomcat/wtpwebapps/miloWeb/WEB-INF/lib/primefaces-3.2.jar!/META-INF/primefaces-p.taglib.xml]: 在 com.sun.facelets.compiler.TagLibraryConfig.create(TagLibraryConfig.java:397) 在 com.sun.facelets.compiler.TagLibraryConfig.loadImplicit(TagLibraryConfig.java:418) 在 com.sun.facelets.compiler.Compiler.initialize(Compiler.java:86) 在 com.sun.facelets.compiler.Compiler.compile(Compiler.java:103) 在 com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:192) 在 com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:141) 在 com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:93) 在 com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503) 在 com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:553) 在 com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) 在 com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) 在 com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 在 javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:349) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:203) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:237) 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281) 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(未知 来源)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知 来源)在 java.lang.Thread.run(Unknown Source) 引起: org.xml.sax.SAXException:错误处理 [jar:file:/C:/tomcat/wtpwebapps/miloWeb/WEB-INF/lib/primefaces-3.2.jar!/META-INF/primefaces-p.taglib.xml@5,17] 在 com.sun.facelets.compiler.TagLibraryConfig$LibraryHandler.error(TagLibraryConfig.java:363) 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(未知 来源)在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知 来源)在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知 来源)在 com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.rootElementSpecified(未知 来源)在 com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(未知 来源)在 com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(未知 来源)在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(未知 来源)在 com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(未知 来源)在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(未知 来源)在 com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(未知 来源)在 com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(未知 来源)在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(未知 来源)在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知 来源)在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知 来源)在 com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(未知 来源)在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(未知 来源)在 com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(未知 源)在 javax.xml.parsers.SAXParser.parse(未知源)在 javax.xml.parsers.SAXParser.parse(Unknown Source) 在 com.sun.facelets.compiler.TagLibraryConfig.create(TagLibraryConfig.java:394) ... 31 更多

这是什么意思?为了保留 facelets 和添加 primefaces,我必须做什么?

【问题讨论】:

标签: java jsf-2 primefaces facelets


【解决方案1】:

是的,它正在使用 Facelets...(Facelets 2.0)

看看这个BalusC Migrating from JSF 1.2 to JSF 2.0

的详细回答

来自原始 BalusC 答案的一些片段...

Facelets 1.x 到 Facelets 2.0

如果您使用 Facelets 1.x 作为视图技术并希望使用 JSF 2.0 提供的 Facelets 2.0,那么您需要执行以下附加步骤:

  • /WEB-INF/lib 中删除 Facelets 1.x JAR。
  • faces-config.xml 中删除 Facelets 1.x FaceletViewHandler
  • 任何自定义 FaceletViewHandler 实现都需要更新以扩展 [ViewHandlerWrapper][2]。
  • 没有必要,只是为了清理,从 web.xml 中删除任何与 Facelets 1.x 相关的 <context-param> 值,这些值在 Facelets 2.0 中已经是默认值,例如值为 *.xhtmljavax.faces.DEFAULT_SUFFIX
  • 更新现有 Facelet taglib XML 的根声明以符合 Facelets 2.0。

    <facelet-taglib 
        xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
        version="2.0">
    

【讨论】:

  • 更新现有 facelet taglib 的根声明的最后一部分,在哪里?我搜索了所有文件,但没有找到任何
  • 我认为它在某种程度上与自定义组件有关....mkyong.com/jsf2/custom-tags-in-jsf-2-0 我猜你的项目中没有...
  • 我尝试了这些更改,但我得到了一个找不到类的错误。我需要添加 facelets 2.0 jar 吗?
  • 不,据我所知没有这样的事情,编辑你的问题并发布堆栈跟踪......或一些细节
  • 其实我已经在这里问过了stackoverflow.com/questions/9998524/…你能看看有没有什么可疑的地方吗?
【解决方案2】:

从您的 faces-config.xml 中删除 view-hander 配置

Here 是一个类似的问题,它在 primefaces 论坛上的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 2018-02-16
    • 2020-06-30
    • 2014-11-15
    • 2011-12-07
    • 2011-11-20
    • 2011-06-02
    相关资源
    最近更新 更多