Перебор списка строк в гобелене - PullRequest
1 голос
/ 10 мая 2011

Я новичок в 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>();

Теперь я хочу добавить еще один <td> в файл tml и отобразитьСписок значений разделенных запятой) есть.Например:

<td>
    enumeratedDynamicPropertyInfo.getClassNames.get(0).get(0),enumeratedDynamicPropertyInfo.getClassNames.get(0).get(1)
</td>

Ответы [ 2 ]

4 голосов
/ 10 мая 2011

Выполнение этого, как предполагает Сильб, вероятно, является вашим лучшим вариантом.Если вы хотите сделать это в файле шаблона, вы можете перебрать список с помощью другого цикла:

<td>
    <span t:type="Loop" t:source="enumeratedDynamicPropertyInfo.classNames" 
       t:value="var:currentClassName">
       ${var:currentClassName}
    </span>
</td>

Вы можете использовать CSS, чтобы добавить необходимые запятые между элементами, чтобы сделать шаблон простым.

1 голос
/ 10 мая 2011

Вы всегда можете создать метод Controller.formatProperty, который не принимает аргументов и возвращает отформатированную строку. Он может получить текущее значение свойства из переменной цикла Controller.enumeratedDynamicPropertyInfo. Затем вызовите Controller.formatProperty из файла tml.

...