AEM中的字符串操作非常直观



我正在使用AEM6.0,并且在其中一个漂亮的脚本中,我有两个变量

${currentPage.path} -?/content/geometrixx/en/tools

${pageHref} ->/content/geometrixx/en/tools.html

现在我需要比较这两者,但由于 ${currentPage.path} 没有.html,它将失败。有什么方法可以将.html附加到它以成功比较它。

No.没有直接的方法可以做到这一点。以下摘自 Sightly 文档告诉您为什么

关注点分离:Sightly 模板语言的表现力被故意限制,以确保使用真正的编程语言来表达相应的表示逻辑。此可选逻辑使用 Use-API 模式从 Sightly 表达式调用,从而易于理解给定视图的调用内容,并可能针对同一资源的不同视图具有不同的逻辑。

我建议使用Java/JavaScript Use API来实现相同的目的。

但是,如果您不可避免地需要在 Sightly 本身中执行此操作,那么您可以使用以下肮脏的黑客,尽管我不推荐它。

<sly data-sly-test.pagePath = "${currentPage.path}.html"></sly>
<sly data-sly-test = "${pageHref == pagePath}">
    <!--/** Your HTML here */-->
</sly> 

这里已经回答了类似的问题。

最新更新