我有一个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)怎么能在服务器部分上重现所有这些呢?
答案 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>