Aem 如何在sightly中使用条件语句时追加字符?

Aem 如何在sightly中使用条件语句时追加字符?,aem,sightly,Aem,Sightly,我需要根据sling:vanityPath的空值设置href值。sling:vanityPath返回sling:vanityPath属性的字符串值。我需要在hit.properties.sling:vanityPath值之前附加一个/。在下面的代码中可以这样做吗?或者我必须测试它两次,但这需要代码重复吗 <a href="${hit.properties.sling:vanityPath == null? hit.path : hit.properties.sling:vanityPath

我需要根据sling:vanityPath的空值设置href值。sling:vanityPath返回sling:vanityPath属性的字符串值。我需要在hit.properties.sling:vanityPath值之前附加一个/。在下面的代码中可以这样做吗?或者我必须测试它两次,但这需要代码重复吗

<a href="${hit.properties.sling:vanityPath == null? hit.path : hit.properties.sling:vanityPath @ extension='html'}"/>

HTL中不支持串联运算符或二进制运算符。您可以对斜杠使用或双重测试。

HTL中不支持串联或二进制运算符。你可以使用斜杠,也可以对斜杠进行双重测试。

我认为你不能一行完成。但您可以尝试为连接的值定义一个变量,而不是为标记复制代码。另外,您是否需要专门检查null?你不能把条件颠倒过来,检查一下这个值是否存在吗

<sly data-sly-test.concatenatedURL="${['/', hit.properties.sling:vanityPath] @ join = ''}"/>
<a href="${hit.properties.sling:vanityPath ? concatenatedURL : hit.path @ extension='html'}"/>

我认为你不可能一蹴而就。但您可以尝试为连接的值定义一个变量,而不是为标记复制代码。另外,您是否需要专门检查null?你不能把条件颠倒过来,检查一下这个值是否存在吗

<sly data-sly-test.concatenatedURL="${['/', hit.properties.sling:vanityPath] @ join = ''}"/>
<a href="${hit.properties.sling:vanityPath ? concatenatedURL : hit.path @ extension='html'}"/>

您可以尝试这样的字符串操作:。我还没有测试。您可以尝试这样的字符串操作:。我还没有测试。