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



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

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

@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)就不存在这个问题。
我的问题是:这是为什么,是因为什么引起的?求大神指教
——解决思路———————-
我觉得你可以用看下请求路径, 这第一个参数的name是从路径来的,  可能自动封装的时候会有影响!

如果弄不懂的话,也没事,  因为实际开发不会这么用的, 你想下, 你要改name,  又用name来做标记进入访问,这个本身是矛盾的吧
——解决思路———————-
struts2已经掌握了现在还要学习springMVC,我想往android方面发展