【发布时间】:2015-04-20 09:48:24
【问题描述】:
如何在 Spring MVC 中将输入元素绑定到 arraylist 元素?
视图模型:
public class AssigneesViewModel {
private int evaluatorId;
private int evaluatedId;
private String evaluatorName;
private String evalueatedName;
//getters and setters
}
模型属性:
public class AssignEvaluationForm{
private ArrayList<AssigneesViewModel> options;
public ArrayList<AssigneesViewModel> getOptions() {
return options;
}
public void setOptions(ArrayList<AssigneesViewModel> options) {
this.options = options;
}
}
控制器
@RequestMapping(value="addAssignment", method = RequestMethod.GET)
public String addAssignment(Model model){
model.addAttribute("addAssignment", new AssignEvaluationForm());
return "addAssignment";
}
然后在 jsp 中,我有 4 个隐藏输入,它们代表评估 ID、评估器 ID、评估器名称、评估器名称 -> 选项 [0] 的字段。 我将如何编写 jsp 代码以将这些输入与 arrayList 的元素映射?
更新:
<form:form commandName="addAssignment" modelAttribute="addAssignment" id="addAssignment" method="POST">
//..........
<c:forEach items="${addAssignment.options}" var="option" varStatus="vs">
<div id="assigneesOptions" >
<form:input path="addAssignment.options[${vs.index}].evaluatedId" value="1"></form:input>
</div>
</c:forEach>
//..............
</form:form>
通过此更新,我收到以下错误:
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'options[]' available as request attribute
【问题讨论】:
-
这里有类似的问题。 [点击此链接][1] [也替换此链接][2] [1]:stackoverflow.com/questions/9617207/… [2]:stackoverflow.com/questions/15480397/…
-
@MizanurRahmanMojumder 感谢您的建议,但我已经实施了相关帖子的答案。我没有 BindingResult 异常。我更新了问题。显然我在某处犯了错误。