如何在SpringMVC中将输入元素绑定到arraylist元素?
如何在SpringMVC中将输入元素绑定到arraylist元素 视图模型:如何在SpringMVC中将输入元素绑定到arraylist元素?,spring,jsp,Spring,Jsp,如何在SpringMVC中将输入元素绑定到arraylist元素 视图模型: public class AssigneesViewModel { private int evaluatorId; private int evaluatedId; private String evaluatorName; private String evalueatedName; //getters and setters } 模型属性: public class A
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;
}
}
然后在jsp中,我有4个隐藏输入,它们表示evaluatedId、evaluatorId、evaluatorName、evaluatedName->options[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>
而不是此addAssignment.options[${vs.index}].evaluatedId
使用此->选项。evaluatedId
或者您可以使用arraylist get->
${addAssignment.options.get(vs.index).evaluatedId}
,尝试使用${}jstl的调用方括号实现该值。顺便说一句,我不确定最后一个例子是否适用于path=”“属性。这里有类似的问题。[点击此链接][1][另选此链接][2][1]:[2]:@mizanurrahmanomojumder谢谢你的建议,但我已经实现了相关帖子的答案。我没有得到任何结果例外。我更新了问题。显然我在某个地方犯了一个错误。GET方法的选项数组列表是空的。然后用户添加了一些输入,在POST上我想将这些输入保存为选项[0]。我不确定这是否很清楚。甚至有可能?你评论中的问题与你的主要问题无关。如果要以数组形式发送数据,通常在复选框和单选按钮上使用名称属性name=“options[]”中的。但是在jsp中获取evaluatedId时遇到问题。
<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
<form:input path="addAssignment.options[${vs.index}].evaluatedId" value="1"></form:input>