【问题标题】:How to get element of list FROM JSP using JSTL and spring 3如何使用 JSTL 和 spring 3 从 JSP 获取列表元素
【发布时间】:2013-09-18 08:04:21
【问题描述】:

正如我们所知,我们可以使用 JSTL 标记在 JSP 中填充列表的元素。 我的要求是从 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>

以上代码将正确填充列表。 当用户修改详细信息(姓名,年龄)并点击提交方法时我的要求。

当用户点击提交时,我需要从 JSP 中获取控制器中的元素列表并保存在 DB 中。

有什么建议吗? 非常感谢您提供这方面的帮助。

【问题讨论】:

  • 你从哪里得到 JSP 中的 childList ?
  • 来自 DisplayController,我需要修改 SaveController 中的列表。

标签: java spring jsp spring-mvc jstl


【解决方案1】:
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);
    }
}

如果你在DB中持久化并修改对象,你应该在ChildDTO对象中添加ID字段,并在JSP中添加隐藏输入。

【讨论】:

  • 谢谢,方法很简单
猜你喜欢
  • 2012-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
相关资源
最近更新 更多