我的控制器:
@RequestMapping(value = "/add-item-json", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String addItemJson(@ModelAttribute("item") @Valid ItemDTO itemToAdd, BindingResult result,
Model model) {
//...
}
ItemDTO:
public class ItemDTO {
@NotNull
@NotEmpty
private String url;
private String title;
private String description;
@ItemUsers
private Set<User> users;
}
Ajax请求:
$.post('/add-item-json', data, function (response) {
alert("send post request");
}, 'json');
JSON:
{
"url": "www.site.com",
"title": "title",
"description": "description",
"users": [
{
"id": "1",
"user": "aaaa"
},
{
"id": "2",
"user": "bbbb"
},
{
"id": "3",
"user": "cccc"
}
]
}
当我尝试使用List属性传递对象时,我收到错误:
执行期间出现异常:无效的属性&#39;用户[0] [id]&#39;的 bean class [com.project.project.dto.ItemDTO]:引用的属性 索引属性路径&#39; users [0] [id]&#39;既不是数组也不是数组 列表也不是地图;返回值是[users {id = null, 用户=&#39;空&#39;}]
org.springframework.beans.InvalidPropertyException:无效的属性 &#39;用户[0] [ID]&#39; bean类[com.project.project.dto.ItemDTO]: 索引属性路径&#39; users [0] [id]&#39;中引用的属性是 既不是数组也不是List也不是Map;返回值是 [users {id = null,users =&#39; null&#39;}]
当我尝试使用Set属性传递对象时,我收到错误:
执行期间出现异常:无效的属性&#39;用户[0] [id]&#39;的 bean class [com.project.project.dto.ItemDTO]:非法获取 物业&#39;用户&#39;抛出异常;嵌套异常是 org.springframework.beans.InvalidPropertyException:无效的属性 &#39;用户[0] [ID]&#39; bean类[com.project.project.dto.ItemDTO]: 无法从使用的大小为0的Set中获取索引为0的元素 属性路径&#39;用户[0] [id]&#39;
org.springframework.beans.InvalidPropertyException:无效的属性 &#39;用户[0] [ID]&#39; bean类[com.project.project.dto.ItemDTO]: 非法企图获得财产的用户&#39;抛出异常;嵌套 异常是org.springframework.beans.InvalidPropertyException: 无效的属性&#39;用户[0] [id]&#39;豆类 [com.project.project.dto.ItemDTO]:无法获取索引为0的元素 从大小为0的集合,使用属性路径&#39; users [0] [id]&#39;
访问
如何将具有Set / List属性的对象传递给spring控制器?
我将不胜感激。