错误:在 Java 构建路径上找不到 "rich:modalPanel" (org.richfaces.taglib.ModalPanelTag) 的标记处理程序类



我正在尝试富脸4。似乎标签类没有在 JAVA 构建路径上设置。我收到所有富组件的错误:"错误:在 Java 构建路径上找不到 * (org.richfaces.taglib.*( 的标记处理程序类">

对于 a4j 组件,对于所有组件,我都收到相同的错误"a4j:"(org.ajax4jsf.taglib.html.jsp.(的标记处理程序类。在 Java 构建路径上找不到">

对于richface4,我进行了以下actoin:

1(添加了以下罐子:

annotations-4.0.0.Final.jar
cssparser-0.9.5.jar
guava-r08-gwt.jar
guava-r08.jar
jsf-api.jar
jsf-impl.jar
richfaces-components-api-4.1.0.Final.jar
richfaces-components-ui-4.1.0.Final.jar
richfaces-core-api-4.1.0.Final.jar
richfaces-core-impl-4.1.0.Final.jar
sac-1.3.jar
commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-digester-2.1-sources.jar
commons-digester-2.1.jar
commons-discovery-0.4.jar
jhighlight-1.0.jar
jsf-facelets-1.1.14.jar

web.xml 是默认生成的,不会添加新元素。由于不需要在 RF4 中进行更改(RF3.3 中需要更改(。

JSP 文件是

<?xml version="1.0" encoding="ISO-8859-1" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"  xmlns:ui="http://java.sun.com/jsf/facelets"  xmlns:f="http://java.sun.com/jsf/core"  xmlns:h="http://java.sun.com/jsf/html"  xmlns:a4j="http://richfaces.org/a4j"  xmlns:rich="http://richfaces.org/rich" version="2.0">
    <jsp:directive.page language="java"
        contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" />
    <jsp:text>
        <![CDATA[ <?xml version="1.0" encoding="ISO-8859-1" ?> ]]>
    </jsp:text>
    <jsp:text>
        <![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ]]>
    </jsp:text>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>TESTING</title>
</head>
<body>
<f:view>
<h:form>
<a4j:commandLink
     value="Opss! I forgot password"
     reRender="forgetPasswordPanel"
     oncomplete="#{rich:component('forgetPasswordPanel')}.show()">
</a4j:commandLink>                       
</h:form>
<rich:modalPanel id="forgetPasswordPanel" autosized="true" width="380">
    <f:facet name="header">
        <h:outputText value="Reset Password"/>
     </f:facet>
</rich:modalPanel>
</f:view>
</body>
</html>
</jsp:root>

我进一步调查了这个问题,发现taglib(tld file(不包含许多Rich和A4j组件的tag类,并且richFace4.1 jar没有腐蚀性的Java类(在richFaces 3.3 jars中(。

我错过了一些罐子吗?我还应该做什么才能使用 richface4 ?

您似乎正在尝试将 RichFaces 3.3 Web 应用程序升级到 RichFaces 4.1。您需要执行更多的更改,而不仅仅是替换 JAR 文件。您可以在他们自己的文档中找到确切的迁移步骤:RichFaces 3.3.x 到 4.x 迁移指南。

例如,JSP已被弃用并被Facelets取代,您需要将JSP重写为XHTML。<rich:modalPanel>被替换为 <rich:popupPanel> ,您需要相应地查找并替换所有这些标签。reRender属性已替换为update属性。诸如此类。此外,应从/WEB-INF/lib中删除Facelets 1.x的jsf-facelets-1.1.14.jar。JSF 2.x 库已经捆绑了正确的 Facelets 2.x 实现。

另请参阅:

  • 从 JSF 1.2 迁移到 JSF 2.0

最新更新