这是一个非常简单的问题。
我想知道向 Spring MVC @Controller 提交巨大 html 表单的最佳实践是什么(巨大 = 超过 20 个字段/复杂字段作为列表等等......)
我有点困惑,因为有人使用这种方法(来自官方示例):
@RequestMapping( value = "/users" , method = RequestMethod.POST )
public ModelAndView saveUser(Locale locale, @Valid User user, BindingResult result) {
if (result.hasErrors()) {
logger.error("Errori form:: " + result.getErrorCount());
} else {
logger.info("Utente salvato");
userService.saveUser(user);
}
...
return mav;
}
还有一些人这样使用更复杂的 SimpleFormController: Spring-MVC forms on GAE
我当然更喜欢第一种方式,但我担心我将不得不创建许多“FormBeans”,无用的 DTO。
你能解释一下差异并给我建议吗?
谢谢。
最佳答案
您的这个示例的目的是使用 Spring 验证。我认为你应该看看 spring 手册或一些帮助,因为它非常基础,但总体思路是 Spring 为你验证表单。
首先,您必须创建一个 Pojo(使用表单中的所有输入以及 getter 和 setter 创建一个类)。
然后,你必须使用 Spring 形式,它与普通形式略有不同。基本思想是将一个对象(在您的例子中为用户)映射到表单。然后,每个输入都映射到 Pojo 的一个字段。
之后,您可以使用注释将验证添加到 Pojo。
@Size(max = 10)
private String name;
例如,此注释 Size 表示字段名称最多必须为 10 个字符。 此验证通过注释 @Valid 进行检查。
然后,当调用 hasErrors 时,您可以获取表单是否有错误。
关于java - Spring MVC 和 "big forms",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137519/