【发布时间】:2016-09-17 04:05:53
【问题描述】:
将会话模型属性声明为:
@SessionAttributes ("customer")
控制器代码基本上是修改客户对象:
@RequestMapping(value="/testlink", method=RequestMethod.GET)
public String testLinkHandler(ModelMap modelMap){
customerDao.getCustomer(111);
modelMap.put("customers", customerDao.getCustomers());
Customer cust = customerDao.getCustomer(115);
if (cust == null){
cust = new Customer();
}
modelMap.put("customer", cust);
return "testlink";
}
@RequestMapping(value="/testlink", method=RequestMethod.POST)
public String testLinkHandler(@ModelAttribute Customer customer){
customerDao.save(customer);
return "redirect:/testlink";
}
使用POST 方法中的上述代码,从会话加载客户对象并发布具有正确 id 的新客户名称,因此编辑客户工作完美,并使用修改后的客户名称更新数据库。
但是当我将模型变量名称和 @SessionAttribute 名称从 "customer" 更改为 "customerModel" 或 "customer_model" 或 "model" 时,它不再起作用,并且上面的代码在 DB 中插入了一条新记录.
所以问题是,这里是否需要遵循命名约定?
【问题讨论】:
标签: spring spring-mvc session session-variables modelattribute