我有一些用户界面,管理员可以在其中更新产品。在我的开发/测试期间,我只打开了一个窗口,一切都按预期工作。
然后客户进行编辑,他们为不同的产品打开了多个选项卡,保存后,这导致了重复字段问题。
@SessionAttributes
我假设这是和的组合@ModelAttribute
。最后打开的产品是放入会话中的产品,因此如果您尝试编辑第一个选项卡,实际上会得到不正确的产品。
我下面的方法是否使用SessionAttribute
和ModelAttribute
不正确?
我的控制器:
@Controller
@SessionAttributes({ "product" })
public class ProductController {
@RequestMapping(value = "/product/update/{productId}", method = RequestMethod.GET)
public String update(@PathVariable Long productId, Model model) {
Product product;
if (productId == null) {
product = new Product();
} else {
product = Product.find(productId);
}
model.addAttribute("product", product);
return "product/update";
}
@RequestMapping(value = "/product/update", method = RequestMethod.POST)
public String update(@ModelAttribute Product product, BindingResult result,
Model model) {
if (result.hasErrors()) {
return "product/update";
}
product = product.merge();
return "redirect:/product/update/" + product.getId();
}
Run Code Online (Sandbox Code Playgroud)
}
我最终使用了一个自定义的 SessionAttributeStore,基于 Marty Jones 的文章
http://marty-java-dev.blogspot.com/2010/09/spring-3-session-level-model-attributes.html
归档时间: |
|
查看次数: |
10642 次 |
最近记录: |