在CQ5.6.1项目中使用Sling Taglib 1.3版

时间:2014-04-03 18:23:18

标签: jsp maven cq5 taglib sling

我已经在新的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?

1 个答案:

答案 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可能会无响应。重启实例应该有帮助。