我是Tapestry 5的新手,我坚持使用以下方案之一:
Controller.java
@Property
private List<EnumeratedDynamicProperty> enumeratedDynamicPropertyList;
@Property
private EnumeratedDynamicProperty enumeratedDynamicPropertyInfo;
.tml
<tr t:type="Loop" t:source="enumeratedDynamicPropertyList" t:value="enumeratedDynamicPropertyInfo" encoder="encoder">>
<td>${enumeratedDynamicPropertyInfo.propertyName}</td>
<td>${enumeratedDynamicPropertyInfo.description}</td>
<td>${enumeratedDynamicPropertyInfo.type}</td>
</tr>
现在在EnumertedDynamicProperty中,我有一个字段具有以下定义:
private List<String> classNames = new ArrayList<String>();
现在我想在tml文件中再添加一个<td>
,并在那里显示以逗号分隔的List值。
例如:
<td>
enumeratedDynamicPropertyInfo.getClassNames.get(0).get(0),enumeratedDynamicPropertyInfo.getClassNames.get(0).get(1)
</td>
答案 0 :(得分:4)
像silb建议的那样做可能是你最好的选择。如果您想在模板文件中执行此操作,可以使用另一个循环遍历列表:
<td>
<span t:type="Loop" t:source="enumeratedDynamicPropertyInfo.classNames"
t:value="var:currentClassName">
${var:currentClassName}
</span>
</td>
您可以使用CSS在元素之间添加必要的逗号,以使模板保持简单。
答案 1 :(得分:1)
您始终可以创建一个不带参数的Controller.formatProperty方法,并返回格式化的字符串。它可以从循环变量Controller.enumeratedDynamicPropertyInfo中检索属性的当前值。然后从tml文件中调用Controller.formatProperty。