我正在尝试富脸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