我有自定义的Question对象,我将其呈现为html表单元素。我希望能够动态创建这些对象并从中生成动态html表单。问题对象具有String属性来保存表单中的结果。我怎样才能让它在Spring中运行?
我的工作方式(看起来不太理想),是我有一个bean来支持自定义表单。这个bean有两个属性:一个用于存放要显示的问题的List和一个用于保存结果的List。 JSP有一个标签,告诉它使用bean作为模型属性。然后我有一个自定义JSP标记,它接受List并将它们呈现为表单元素。元素被赋予answer [n]的ID,Spring将把表单的结果放入支持bean的List属性中。
有谁知道我怎么能做得更好?
答案 0 :(得分:1)
我的问题是缺乏经验。
我最终得到了这个(解释得非常简化):
我的bean有以下字段:String questionType,String questionText,String answer。 我的bean列表是List问题。
当我从bean列表生成HTML时,我只需要使每个表单元素的id / name与列表的名称以及列表中bean的位置匹配。
所以,如果我的问题列表如下:
[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会找到这些bean并使用表单数据调用setAnswerText(String value)。
我希望这可以帮助其他人在他们的Spring MVC之旅中磕磕绊绊。