gpt4 book ai didi

java - Spring 3 中的动态表单

转载 作者:行者123 更新时间:2023-12-01 15:58:08 24 4
gpt4 key购买 nike

我有自定义 Question 对象,我将其渲染为 html 表单元素。我希望能够动态创建这些对象并从中生成动态 html 表单。问题对象有一个 String 属性来保存表单的结果。我怎样才能让它在 Spring 中工作?

我让它工作的方式(这看起来并不理想)是我有一个 bean 来支持自定义表单。该 bean 有两个属性:一个用于保存要显示的问题的列表,一个用于保存结果的列表。 JSP 有一个标记,告诉它使用 bean 作为模型属性。然后我有一个自定义 JSP 标记,它获取列表并将它们呈现为表单元素。这些元素的 ID 为 answer[n],Spring 会将表单的结果放入支持 bean 的 List 属性中。

有人知道我怎样才能做得更好吗?

最佳答案

我的问题是缺乏经验。

我最终得到了这个(为了解释而简化了):

我的bean有以下字段:字符串questionType、字符串questionText、字符串answer。我的 Bean 列表是列出问题。

当我从 bean 列表生成 HTML 时,我只需要使每个表单元素的 id/名称与列表的名称以及 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 之旅开始时遇到困难的人。

关于java - Spring 3 中的动态表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4636098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com