【发布时间】:2015-08-05 02:51:11
【问题描述】:
假设我有一个 Web 表单,并且每当提交表单时,都会对其进行验证。
如果出现错误,我会将其重定向到同一页面并使用 RedirectAttributes 来维护表单值以便重新提交。 否则,它会成功提交到下一页。
问题: (1) 每当我返回或重新访问相同的表单 url 时,它始终保留提交的输入 (2) 尝试提交新值时,它会更改(更新)之前提交的数据。 (3) 提交成功后我希望它被清除为一个新的表单对象。
到目前为止,这是我的控制器代码:
获取
@RequestMapping (method = RequestMethod.GET)
public String setForm(Model model, HttpSession session){
Object o;
if(!model.containsAttribute("object")){
model.addAttribute("object", new Object());
}
else{
l= (Object)modelasMap().get("object");
}
return "app/formUrl";
}
在我的 POST
@RequestMapping(method = RequestMethod.POST)
public String formSubmit(@ModelAttribute("object" Object object,
final BindingResult result, HttpSession session,
SessionStatus status, RedirectAttributes attr){
//DO some object manipulation code here
//validation code
if(result.hasErrors()){
attr.addFlashAttribute(org.springframework.validation.BindingResult.object", result);
attr.addFlashAttribute("object", object);
return "redirect:/formUrl";
}
else{
//save form inputs here
}
}
return "redirect:successPage";
}
当我在我的 GET 中设置条件 if(!model.containsAttribute("object")) 时,为什么它没有返回一个新的清除表单,我真的很困惑。
我希望有人可以向我解释似乎是什么问题。提前致谢!
编辑:
添加 <mvc:annotation-driven ignore-default-model-on-redirect = "true"/> 给我错误:
cvc-complex-type.3.2.2: Attribute 'ignoreDefaultModelOnRedirect' is not allowed to appear in element 'mvc:annotation-driven'.
如果我使用ignoreDefaultModelOnRedirect,也会出现同样的错误
附加信息 - 我正在构建 Maven。
【问题讨论】:
标签: spring forms validation post get