1

我是 Spring 新手,需要一些指导。我已经阅读了 Spring 教程,但找不到我想要的东西。我想知道处理这种情况的最佳方法是什么:

  1. 用户转到索引页面并显示一个表单。
  2. 用户填写表格并提交到新的 URL(通过客户端验证)
  3. 在表单对象的 Spring 验证期间,它检测到错误
  4. 将用户重定向回索引页面,突出显示受影响的字段

我假设这是这种情况的正确流程。如果没有,请告诉我否则。如果这是正确的流程,我如何将绑定/验证错误传递给模板?

4

1 回答 1

0

在这种情况下,请遵循Post/Redirect/Get 模式流程。当服务器端验证失败时 ( result.hasErrors()) 不要重定向而是再次显示索引页面。Spring 处理将错误传递给模板。要显示错误,请使用支持 Spring MVC 的模板引擎的功能(例如显示 JSP 中的所有错误 - <form:errors path="*" element="div" />)。

@Controller
public class MyController {

    @RequestMapping(value="/index.html", method=RequestMethod.GET)
    public String display(@ModelAttribute MyForm myForm){
        return "index";
    }

    @RequestMapping(value="/process.do", method=RequestMethod.POST)
    public String processForm(@ModelAttribute @Validated MyForm myForm, 
                          BindingResult result) {

        if(result.hasErrors()){
            return display(myForm);
        }

        return "redirect:/processed.html";
    }
}
于 2013-08-23T00:27:42.673 回答