我有一个普通的use class,它包含一个返回带有很多setter / getter的复杂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>
我不能这样做。有没有其他方法可以达到这样的效果?非常感谢!
答案 0 :(得分:2)
所以答案是:
<sly data-sly-test.varName="${data.firstProperty}"></sly>
<div> ${varName.secondProperty} </div>
通过空data-sly-test
属性创建变量,使其可以在标记之后访问。
答案 1 :(得分:1)
您可以使用以下语法设置要在WCMUse类中使用的变量:
<sly data-sly-use.someUse="${ 'com.mycompany.SomeUse' @ page=currentPage }">
并从您的WCMUse类的page
方法中检索activate()
变量,如下所示:
Page page = get("page", Page.class);
有关工作示例,请查看this Sightly script和this WCMUse class。
答案 2 :(得分:1)
而不是data-sly-use.data=${someUse.data}
使用data-sly-test.data="${someUse.data}"
。
然后你就可以得到像
${data.firstProperty}
<div>
${data.secondProperty}
</div>
答案 3 :(得分:0)
您还可以在DOM元素中设置
<div id="elementId" data-sly-test.vehicle="${model.vehicle}">
<p>${vehicle.name}</p>
<p>${vehicle.type}</p>
</div>