spring mvc 中页面form表单传递对象的问题

编号0421 2014-09-03 05:33:31

@RequestMapping(value = "/{name}/update", method = RequestMethod.POST)
public String update(@PathVariable String name, @Validated Book book, BindingResult br) {
if (br.hasErrors()) {
System.out.println("error");
return "update";
}
books.put(name, book);
System.out.println("update " + book);
return "redirect:/book/list.html";
}


这个是处理book类修改方法的控制器(book有三个属性,分别是name,price和author),获取到的第一个参数是修改前book的name
如果这样写的话,在页面修改了book的name,但是接收到的永远是修改前的name,而其他两个属性可以随意修改。原因是book的name属性与第一个参数name存在冲突,如果把第一个参数名字改成别的(譬如name1)就不存在这个问题。
我的问题是:这是为什么,是因为什么引起的?求大神指教
...全文
312 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jingangjik 2014-09-03
  • 打赏
  • 举报
回复
struts2已经掌握了现在还要学习springMVC,我想往android方面发展
Lumia10200 2014-09-03
  • 打赏
  • 举报
回复
我觉得你可以用看下请求路径, 这第一个参数的name是从路径来的, 可能自动封装的时候会有影响! 如果弄不懂的话,也没事, 因为实际开发不会这么用的, 你想下, 你要改name, 又用name来做标记进入访问,这个本身是矛盾的吧

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧