如何直观地从使用对象设置变量?
How to set variable from use object in sightly?
我有简单的使用 class,其中包含一个 returns 具有大量 setters/getters 的复杂 bean 的方法。让我们将其命名为 SomeUse
。给定可见文件:
<sly data-sly-use.someUse="com.mycompany.SomeUse">
${someUse.data.firstProperty}
<div>
${someUse.data.secondProperty}
</div>
<!-- ...and so on -->
</sly>
所以重点是我不想看 someUse.data
得到。相反,我 会 做这样的事情:
<sly data-sly-use.someUse="com.mycompany.SomeUse" data-sly-use.data=${someUse.data}>
${data.firstProperty}
<div>
${data.secondProperty}
</div>
<!-- ...and so on -->
</sly>
虽然我不能这样做。有没有其他方法可以达到这样的结果?非常感谢!
您可以使用以下语法设置在 WCMUse class 中使用的变量:
<sly data-sly-use.someUse="${ 'com.mycompany.SomeUse' @ page=currentPage }">
并从您的 WCMUse class 的 activate()
方法中检索 page
变量,如下所示:
Page page = get("page", Page.class);
有关工作示例,请查看 this Sightly script and this WCMUse class。
而不是data-sly-use.data=${someUse.data}
使用 data-sly-test.data="${someUse.data}"
。
然后你就可以得到属性喜欢
${data.firstProperty}
<div>
${data.secondProperty}
</div>
所以答案是:
<sly data-sly-test.varName="${data.firstProperty}"></sly>
<div> ${varName.secondProperty} </div>
通过空 data-sly-test
属性创建变量使其在标记后可访问。
您还可以在DOM个元素中设置
<div id="elementId" data-sly-test.vehicle="${model.vehicle}">
<p>${vehicle.name}</p>
<p>${vehicle.type}</p>
</div>
我有简单的使用 class,其中包含一个 returns 具有大量 setters/getters 的复杂 bean 的方法。让我们将其命名为 SomeUse
。给定可见文件:
<sly data-sly-use.someUse="com.mycompany.SomeUse">
${someUse.data.firstProperty}
<div>
${someUse.data.secondProperty}
</div>
<!-- ...and so on -->
</sly>
所以重点是我不想看 someUse.data
得到。相反,我 会 做这样的事情:
<sly data-sly-use.someUse="com.mycompany.SomeUse" data-sly-use.data=${someUse.data}>
${data.firstProperty}
<div>
${data.secondProperty}
</div>
<!-- ...and so on -->
</sly>
虽然我不能这样做。有没有其他方法可以达到这样的结果?非常感谢!
您可以使用以下语法设置在 WCMUse class 中使用的变量:
<sly data-sly-use.someUse="${ 'com.mycompany.SomeUse' @ page=currentPage }">
并从您的 WCMUse class 的 activate()
方法中检索 page
变量,如下所示:
Page page = get("page", Page.class);
有关工作示例,请查看 this Sightly script and this WCMUse class。
而不是data-sly-use.data=${someUse.data}
使用 data-sly-test.data="${someUse.data}"
。
然后你就可以得到属性喜欢
${data.firstProperty}
<div>
${data.secondProperty}
</div>
所以答案是:
<sly data-sly-test.varName="${data.firstProperty}"></sly>
<div> ${varName.secondProperty} </div>
通过空 data-sly-test
属性创建变量使其在标记后可访问。
您还可以在DOM个元素中设置
<div id="elementId" data-sly-test.vehicle="${model.vehicle}">
<p>${vehicle.name}</p>
<p>${vehicle.type}</p>
</div>