Создание формы с динамическим количеством элементов в Tapestry

Я пытаюсь создать форму с переменной - на сервере сторона - количество текстовых полей. Страница гобелена выглядит примерно так:

<form t:id="form">
    <t:loop source="typesOfIncome" value="typeOfIncome">
        <input t:type="TextField" t:id="typeOfIncome-${typeOfIncome.propertyIndex}" value="100"/>
    </t:loop>
</form>

Это не принимается Tapestry, поскольку оно выдает с помощью

Идентификатор компонента 'typeOfIncome - $ {typeOfIncome.propertyIndex}' недействителен; идентификаторы компонентов должны быть действительными идентификаторами Java: начинаться с буквы и состоять из букв, цифр и знаков подчеркивания.

Как добиться этого с помощью Tapestry? И как код Java будет выглядеть в компоненте?


Обновление :

Для компонента, который выглядит так:

public class FormSample {

    @Component
    private Form _form;

    @Inject
    private Logger _log;

    @Property
    private List<String> _typesOfIncome;

    @Property
    private String _typeOfIncome;

    @SetupRender
    void setupRender() {
        _typesOfIncome = Arrays.asList("First", "Second");
    }

    void onSuccess() {
        _log.info("Got values " + _typesOfIncome + " .");
    }

}

и страницы, содержащей

<form t:id="form">
  <t:loop source="typesOfIncome" value="typeOfIncome">
    <input t:type="TextField" t:id="typeOfIncome" t:value="typeOfIncome"/> <br/>
  </t:loop>
  <input type="submit" value="Save"/>
</form>

, в onSuccess список значений равен нулю. Значения POSTED как:

typeOfIncome    First
typeOfIncome_0  Second
1
задан Steve Eynon 20 May 2013 в 16:39
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: