primefaces是否与facelets一起使用?

时间:2012-04-03 06:09:59

标签: java jsf-2 primefaces facelets

我正在使用在tomcat服务器上运行的JSF 2.0构建Java Web App。我正在使用facelets1.1.10。我最近看到了哪些主要内容可以做,而且我对此印象非常深刻。所以我想在我的网络项目中添加primefaces。

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

  

严重:加载库时出错:   罐子:文件:/ C:/tomcat/wtpwebapps/miloWeb/WEB-INF/lib/primefaces-3.2.jar /META-INF/primefaces-p.taglib.xml   java.io.IOException:解析时出错   [JAR:文件:/ 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)at   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)at   com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)     在javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)at   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)在java.lang.Thread.run(未知来源)引起:   org.xml.sax.SAXException:错误处理   [JAR:文件:/ 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(未知   来源)at   com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知   来源)at   com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知   来源)at   com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.rootElementSpecified(未知   来源)at   com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(未知   来源)at   com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(未知   来源)at   com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(未知   来源)at   com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl $ ContentDriver.scanRootElementHook(未知   来源)at   com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDriver.next(未知   来源)at   com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl $ PrologDriver.next(未知   来源)at   com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(未知   来源)at   com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(未知   来源)at   com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知   来源)at   com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知   来源)at   com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(未知   来源)at   com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(未知   来源)at   com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl $ JAXPSAXParser.parse(未知   来自)javax.xml.parsers.SAXParser.parse(未知来源)at   javax.xml.parsers.SAXParser.parse(未知来源)at   com.sun.facelets.compiler.TagLibraryConfig.create(TagLibraryConfig.java:394)     ......还有31个

这是什么意思?我需要做些什么才能保留facelets并添加primefaces?

2 个答案:

答案 0 :(得分:3)

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

通过 BalusC Migrating from JSF 1.2 to JSF 2.0

查看详细解答

来自原始 BalusC 的一些代码段

Facelets 1.x到Facelets 2.0

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

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

    *.xhtml

答案 1 :(得分:0)

view-hander

中删除faces-config.xml个配置

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