2

我有一个简单的使用类,它包含一种返回具有大量设置器/获取器的复杂 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>

虽然我不能这样做。有没有其他方法可以达到这样的结果?非常感谢!

4

4 回答 4

3

所以答案是:

<sly data-sly-test.varName="${data.firstProperty}"></sly>
<div> ${varName.secondProperty} </div>

通过空属性创建变量data-sly-test使其在标记后可访问。

于 2018-02-12T17:19:35.693 回答
1

You can set variables for use in a WCMUse class with the following syntax:

<sly data-sly-use.someUse="${ 'com.mycompany.SomeUse' @ page=currentPage }">

and retrieve the page variable from your WCMUse class's activate() method like this:

Page page = get("page", Page.class);

For a working example, check out this Sightly script and this WCMUse class.

于 2015-12-30T19:02:26.603 回答
1

而不是data-sly-use.data=${someUse.data} 使用data-sly-test.data="${someUse.data}". 然后你就可以得到像

${data.firstProperty}
  <div>
    ${data.secondProperty}
  </div>
于 2018-02-01T10:28:49.507 回答
0

您还可以在 DOM 元素中设置

<div id="elementId" data-sly-test.vehicle="${model.vehicle}">
    <p>${vehicle.name}</p>
     <p>${vehicle.type}</p>
</div>
于 2018-08-10T06:57:10.743 回答