代码是这样的
表单内容:
<input name="item.title" type="text" />
<input name="itemDesc.desc" type="text" />
<input name="itemImg.src" type="text" />
<input name="itemImg.src" type="text" />
<input name="itemImg.src" type="text" />
Controller:
@RequestMapping(value="/new", method=RequestMethod.POST)
@ResponseBody
public MsgResult createItem(TbItem item, TbItemDesc itemDesc, List<TbItemImg> itemImg, HttpServletRequest request, HttpServletResponse response) {
//itemImg出错
//...
}
@InitBinder("tbItem")
public void itemBinder(WebDataBinder webDataBinder){
webDataBinder.setFieldDefaultPrefix("item.");
}
@InitBinder("tbItemImg")
public void itemImgBinder(WebDataBinder webDataBinder){
webDataBinder.setFieldDefaultPrefix("itemImg.");
}
@InitBinder("tbItemDesc")
public void itemDescBinder(WebDataBinder webDataBinder){
webDataBinder.setFieldDefaultPrefix("itemDesc.");
}
其他两个参数是正常传递的,但是img没有转化成List,报错:
Failed to instantiate [java.util.List]: Specified class is an interface
怎么解决,谢谢各路大神。
页面上传了三个String,控制层直接用List<String>接收,这样收据类型对不上,肯定不能接收到。
建议: 前端页面直接把三个图片地址拼接成一个字符串,逗号隔开,控制层直接用一个String接收,然后在Java中转换成List