java - primefaces 可以与facelets 一起使用吗?

标签 java jsf-2 primefaces facelets

我正在使用在 tomcat 服务器上运行的 JSF 2.0 构建一个 Java Web 应用程序。我正在使用 facelets1.1.10 。我最近看到了 primefaces 的功能,并且给我留下了深刻的印象。所以我想将 primefaces 添加到我的网络项目中。

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

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

这是什么意思?我必须做什么才能保留facelets并添加primefaces?

最佳答案

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

看看 BalusC 的详细回答 Migrating from JSF 1.2 to JSF 2.0

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

Facelets 1.x 到 Facelets 2.0

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

  • /WEB-INF/lib 中删除 Facelets 1.x JAR .
  • 删除 Facelets 1.x FaceletViewHandler来自faces-config.xml .
  • 任何自定义 FaceletViewHandler需要更新实现以扩展 [ ViewHandlerWrapper ][2] 相反。
  • 不必要,但只是为了清理,删除任何与 Facelets 1.x 相关的 <context-param>值来自web.xml Facelets 2.0 中已经默认,例如 javax.faces.DEFAULT_SUFFIX值为*.xhtml .
  • 更新现有 Facelet 标记库 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">
    

关于java - primefaces 可以与facelets 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9987957/

相关文章:

项目中的 Java keystore

java - AWT、SWT、Swing、SAF/JSR-296、JFace、NetBeans 平台和 Eclipse RCP 之间的关系是什么

primefaces - p :fileDownload primefaces 3. 5 和 Liferay 6.1 ga1,不支持地雷类型

Java - 继承

java - 大 O 符号检查理解

ajax - 如何重新渲染 <ui :repeat> using <f:ajax render>

jsf - javax.el.PropertyNotFoundException : The class doesn't have property

java - JSF 2.0 : How include <h:head> attributes?

jquery - Primefaces 仅更新选定的选项卡

jquery - 如何使用 jQuery 处理 Primefaces tabView 的 'OnTabShow'?