我已经在新的Sling Taglib 1.3版上阅读了这篇文章http://sling.apache.org/documentation/bundles/sling-scripting-jsp-taglib.html,因为我想开始使用像listChildren这样的新JSTL函数,这样我就可以避免在我的组件中使用Java scriptlet。
当我使用taglib声明时
<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling" %>
在我的组件JSP中,当我将组件放入我的PARSYS时,我收到以下错误
org.apache.sling.api.scripting.ScriptEvaluationException:
org.apache.sling.scripting.jsp.jasper.JasperException:
The absolute uri: http://sling.apache.org/taglibs/sling cannot be resolved
in either web.xml or the jar files deployed with this application
在我的maven pom.xml文件中,我有依赖
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.scripting.jsp.taglib</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
项目正确构建并正确安装。
有谁知道如何配置CQ 5.6.1项目以使用带有URI http://sling.apache.org/taglibs/sling
的Sling Taglib 1.3版捆绑版本2.2.0?
答案 0 :(得分:4)
CQ 5.6.1包含版本2.1.8中的org.apache.sling.scripting.jsp.taglib
包(在版本1.2中定义了taglib)。要使用新的taglib,您需要升级捆绑包。
如果您将Maven依赖项定义为provided
,则表示它已经安装在目标平台上。在这种情况下,它不是真的。删除范围或将其更改为compile
,以便将新的taglib包包含到CQ包中。安装包后,您可以使用所有新功能。
您也可以手动安装the bundle(通过Felix控制台) - 您当时不需要任何Maven依赖项。
请注意,安装新的taglib软件包后CQ可能会无响应。重启实例应该有帮助。