如何在Sightly/HTL中连接字符串?

mrj*_*per 8 sightly htl

我有以下代码:

<sly data-sly-use.link="${'core.impl.view.tools.LinkUtils' @ path=properties.targetURL}"></sly>
Run Code Online (Sandbox Code Playgroud)

我想连接properties.linkTypeproperties.targetURL.

有什么想法可以做到吗?我在网上找到了例子,但它们似乎不适用于我的用例.

Vla*_*lad 14

这取决于你想到的字符串连接类型:

  1. 不支持使用运算符连接字符串,即.你不能这样做${properties.targetURL + properties.linkType}.解决方法(由@Jens建议)是这样的:<sly data-sly-test.concatenated="${'{0}{1}' @ format=[properties.targetURL, properties.linkType]}"></sly>
  2. 在HTML输出中连接字符串可以通过将HTL表达式放在彼此旁边来完成,即. ${properties.targetUrl}${properties.linkType}
  3. 通过多个表达式选项支持将两个字符串发送到Use Object: <sly data-sly-use.link="${'core.impl.view.tools.LinkUtils' @ path=properties.targetURL, type=properties.linkType}"></sly>
  4. 在某些情况下,使用URI操作可能会连接字符串以形成URL

  • 还有另一个选项虽然不是很有用但是为了完整性:`$ {'{0} {1}'@ format = [properties.string1,properties.string2]}`.请参阅https://github.com/Adobe-Marketing-Cloud/htl-spec/blob/master/SPECIFICATION.md#examples (4认同)

Man*_*sha 12

我只是想通过使用添加一种方法来将字符串连接到上面的答案@ join.

<sly data-sly-test="${['String1','String2','String3'] @ join = '-'}"/>
Run Code Online (Sandbox Code Playgroud)

它将输出为: String1-String2-String3