gpt4 book ai didi

spring - 在 Spring 表单中绑定(bind)多个对象

转载 作者:行者123 更新时间:2023-12-02 09:22:49 24 4
gpt4 key购买 nike

我无法正确获取 JSP View 。我打算做的是发送一个包含问题的列表,每个问题对象都是一个文本字段和一个包含选项的列表。

我的目的是能够编辑多个问题(既能够编辑问题的文本/名称,又能够编辑包含的选项)。

我的支持对象现在正在发送列表问题。

这是我的 JSP,由于 bean 类的属性无效而失败。

        <form:form commandName="question">
<form:errors path="*">
<fieldset class="stdframe">
<legend>Question</legend>
</fieldset>
</form:errors>

<div class="stdframe">
<c:forEach var="q" items = "${question}" varStatus = "s">
<p><b>Question:</b></p>
<p><form:input size="67" path="${q.text}"/></p>
<br/>
${q.text}
<ul>
<c:forEach var="alternative" items = "${q.alternatives}" varStatus = "t">
${alternative.text}
<li><form:input path = "${alternative[$t.index].text}" /></li>
</c:forEach>
</ul>
<br/>
</c:forEach>
<input type="submit" class="submit" value="Save" />
<input type="button" class="button" onClick="back()" value="Back"/>
</div>
</form:form>

我已经尝试了 ${q.text}${q[$s.index].text}。当我只是打印 ${q.text} 时,它会显示问题对象的正确文本。替代方案也是如此。

如何才能将表单正确绑定(bind)到对象?

此外,当我存储一个包含其他对象列表的对象时,该列表本身是否会存储在数据库中?

最佳答案

您可能需要将列表包装在一个简单的对象中,并将列表作为字段:

class MyListWrapper { List questions; } // etc.

如果您使用它作为命令/表单对象,您应该能够在 JSP 中执行类似的操作:

<form:form commandName="wrapper">
// ...
<c:forEach var="q" items = "${wrapper.questions}" varStatus = "s">
<p><b>Question:</b></p>
<p><form:input size="67" path="questions[${s.index}].text"/></p>
// ...
<c:forEach var="alternative" items = "${q.alternatives}" varStatus = "t">
${alternative.text}
<li><form:input path = "questions[${s.index}].alternatives[${t.index}].text" /></li>

关于spring - 在 Spring 表单中绑定(bind)多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5460223/

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