我有一些管理員可以更新產品的UI。在我的開發/測試過程中,我只打開過一個窗口,一切都按照應有的方式工作。Spring MVC +會話屬性和多個選項卡
然後,客戶端正在編輯,並且他們打開了多個不同產品的選項卡,保存時會導致重複的字段問題。我想這是@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();
}
}
你應該使用'request'範圍,而不是'session'範圍,允許用戶內完成多個任務的會話。 –
嗨,我找到了這個解決方案,我認爲這對我有所幫助。 http://mandeep312.blogspot.com/2014/05/when-you-are-using-sessionattributes.html#more –