AEM中的字符串操作是否正确?

时间:2016-02-28 17:19:45

标签: cq5 aem sightly

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

  

$ {currentPage.path} - ? /内容/ geometrixx / EN /工具

     

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

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

1 个答案:

答案 0 :(得分:2)

没有。没有直接的方法可以做到这一点。以下Sightly docs的摘录告诉您原因

  

关注点分离: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> 

类似的问题是answered here