错误:在Java Build Path中找不到“rich:modalPanel”(org.richfaces.taglib.ModalPanelTag)的标记处理程序类

时间:2012-01-16 07:07:24

标签: jsf jsf-2 richfaces ajax4jsf

我正在尝试使用richface 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文件)不包含许多rich和a4j组件的tag-class,而richFace4.1 jar没有相应的java类(在richFaces 3.3 jars中) 。

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

1 个答案:

答案 0 :(得分:1)

您似乎正在尝试将RichFaces 3.3 Web应用程序升级到RichFaces 4.1。除了替换JAR文件之外,您还需要做更多的更改。您可以在自己的文档中找到准确的迁移步骤:RichFaces 3.3.x to 4.x migration guide

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

另见: