Spring MVC Controller List <myclass>作为参数</myclass>

时间:2012-12-03 10:11:03

标签: spring list model-view-controller parameters controller

我有一个Spring MVC应用程序。 Jsp页面包含提交的表单。 我的控制器的方法如下:

@RequestMapping(value = "photos/fileUpload", method = RequestMethod.POST)
    @ResponseBody
    public String fileDetailsUpload(List<PhotoDTO> photoDTO,
                                    BindingResult bindingResult,
                                   HttpServletRequest request) {
        // in the point **photoDTO** is null
    }

我的课程是:

    public class PhotoDTO {
        private Boolean mainPhoto;
        private String title;
        private String description;
        private Long realtyId;

//getters/setters

但是,如果我编写相同的方法,但param只是我的对象:

    @RequestMapping(value = "photos/fileUpload", method = RequestMethod.POST)
        @ResponseBody
        public String fileDetailsUpload(PhotoDTO photoDTO,
                                        BindingResult bindingResult,
                                        HttpServletRequest request) {
// Everething is Ok **photoDTO** has all fields, which were fielded on the JSP

在这种情况下我该怎么办?如果我在Jsp上有很多 PhotoDTO 对象(15)怎么能在服务器部分上重现所有这些呢?

1 个答案:

答案 0 :(得分:1)

页面应将列表中每个PhotoDTO的参数以适当的格式传递回服务器。在这种情况下,您需要使用status var来使用name属性指定列表中每个对象的索引。

<form>
<c:forEach items="${photoDTO}" var="photo" varStatus="status">
        <input name="photoDTO[${status.index}].title" value="${photo.title}"/>
        <input name="photoDTO[${status.index}].description" value="${photo.description}"/>
</c:forEach>
</form>