0

我有一个 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),我如何才能在服务器部分接收所有这些对象?

4

1 回答 1

1

该页面应PhotoDTO以适当的格式将列表中每个参数的参数传递回服务器。在这种情况下,您需要使用状态变量来使用 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>
于 2012-12-03T10:22:16.330 回答