2011-01-08 6 views
0

У меня есть пользовательские объекты вопроса, которые я визуализую в элементы формы html. Я хочу иметь возможность динамически создавать эти объекты и генерировать из них динамическую форму html. Объект вопроса имеет свойство String для хранения результата из формы. Как я могу заставить это работать весной?Динамическая форма весной 3

Способ, которым я работаю (что не кажется идеальным), есть ли у меня компонент для возврата к пользовательской форме. Этот компонент имеет два свойства: Список для хранения вопросов для отображения и Список для хранения результатов. JSP имеет тег, который говорит ему использовать компонент в качестве атрибута модели. Затем у меня есть пользовательский тег JSP, который принимает список и отображает их в элементы формы. Элементам присваиваются идентификаторы ответа [n], а Spring добавляет результаты формы в свойство List в бэк-компоненте.

Кто-нибудь знает, как я могу сделать это лучше?

+0

Это похоже на мой старый вопрос http://stackoverflow.com/questions/890250/better-way-for-dynamic-forms-with-spring –

+1

Он делает. Почему вы не выбрали ответ? –

+0

[Здесь] [1] - это решение, которое я реализовал. [1]: http://stackoverflow.com/questions/9671640/spring-3-mvc-managing-a-one-to-many-relation-within-a-dynamic-form-using- – sp00m

ответ

1

Моя проблема заключалась в отсутствии опыта.

Я закончил с этим (значительно упрощена для объяснения):

Мой боб имеет следующие поля: Строка questionType, String questionText, String ответа. Мой список фасолей - это список вопросов.

Когда я создаю HTML из списка компонентов, мне просто нужно сделать id/name каждого элемента формы совпадающим с именем списка и положением компонента в списке.

Так что, если мой список вопросов выглядит следующим образом:

[0] {questionType="TEXT", questionText="What is your name?", answerText=null} 
[1] {questionType="TEXT", questionText="What is your quest?", answerText=null} 
[2] {questionType="TEXT", questionText="What is your favorite color?", answerText=null} 

Тогда мне нужно генерировать следующий HTML, когда я цикл по списку:

<div class="question"> 
    <p class="questionText">What is your name?</p> 
    <input type="text" id="questions[0].answerText" name="questions[0].answerText" /> 
</div> 
<div class="question"> 
    <p class="questionText">What is your quest?</p> 
    <input type="text" id="questions[1].answerText" name="questions[1].answerText" /> 
</div> 
<div class="question"> 
    <p class="questionText">What is your favorite color?</p> 
    <input type="text" id="questions[2].answerText" name="questions[2].answerText" /> 
</div> 

Когда форма отправлена, Spring найдет эти бобы и вызовет setAnswerText (String value) на них с данными формы.

Я надеюсь, что это поможет кому-то еще споткнуться в начале своего путешествия в Spring MVC.

Смежные вопросы