[英]How to get element of list FROM JSP using JSTL and spring 3
众所周知,我们可以使用JSTL标签在JSP中填充list的元素。 我的要求是获取从JSP到控制器的元素列表。
我有一个DTO类(ParentDTO),内部包含DTO列表(ChildDTO),看起来像这样,
public class ParentDTO {
private Long id;
private List<ChildDTO> childs;
//getters and setters here....
}
and ChildDTO looks like,
public class ChildDTO {
private String name;
private Long age;
//getters and setters here....
}
在控制器中
List<ChildDTO> childList = new ArrayList<ChildDTO>();
ChildDTO childOne = new ChildDTO();
childOne.setName("ABC");
childOne.setAge(10);
ChildDTO childTwo = new ChildDTO();
childTwo.setName("XYZ");
childTwo.setAge(5);
childList.add(childOne);
childList.add(childTwo);
model.addAttribute("childList", childList);
在JSP中
<c:forEach var="child" items="${childList}">
<tr>
<td>Name : <input type="text" name="name" value="${child.name}"/></td>
<td>Age : <input type="text" name="age" value="${child.age}"/></td>
</tr>
</c:forEach>
上面的代码将正确填充列表。 当用户修改详细信息(姓名,年龄)并单击提交方法时,我的要求是。
当用户单击Submit时,我需要从JSP获取控制器中的元素列表,并将其保留在DB中。
有什么建议吗? 非常感谢在这方面的帮助。
String[] nameArr = request.getParameterValues("name");
String[] ageArr = request.getParameterValues("age");
List<ChildDTO> childList = new ArrayList<ChildDTO>();
if(nameArr != null && nameArr.length > 0 && ageArr != null && ageArr.length > 0 && nameArr.length == ageArr.length) {
for(int i = 0; i < nameArr.length; i++) {
ChildDTO childOne = new ChildDTO();
childOne.setName(nameArr[i]);
childOne.setAge(Long.valueOf(ageArr[i]));
childList.add(childOne);
}
}
如果您坚持使用数据库并修改对象,则应将ID字段添加到ChildDTO对象,并向JSP添加隐藏的输入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.