gpt4 book ai didi

java - 尝试了解使用 Spring 进行基本表单验证的工作流程

转载 作者:行者123 更新时间:2023-11-30 05:09:05 25 4
gpt4 key购买 nike

这里是 Spring 新手,阅读引用文档后,我并没有想到验证简单 Web 表单的工作流程。

有人可以给我一个关于如何在 Spring 3.0.3 中进行表单验证的初学者概述吗(我在现在正在迁移的 web 应用程序中混合使用注释和 xml 配置)。从 Controller 开始,会发生什么?

例如:到目前为止,我认为我明白我应该将表单数据“绑定(bind)”到我创建的对象(例如 MyPerson),然后创建一个接受 MyPerson 并使用 ValidationUtils 执行验证的 Validation 对象。

但这在我的脑海中非常模糊(尤其是“绑定(bind)”概念),并且以前经历过工作流程的人对工作流程的逐步审查将帮助我确信我没有遗漏或误解任何步骤。

最佳答案

您提到的验证表单的方法是您可用的几个选项之一。

除了您建议的方法之外,您可能还想研究使用 JSR-303 注释和适当的实现(例如 Hibernate Validator)。有很多示例说明如何实现此目的。

对于 spring 验证方法,您的基本步骤是:

  • 创建一个类作为绑定(bind)对象,将其实例传递给 Controller ​​中的 View
  • 使用表单 taglib 将对象绑定(bind)到 View 中的字段
  • 在处理表单提交的 Controller 方法中,使用@ModelAttribute注释将表单数据绑定(bind)到您的绑定(bind)对象
  • 使用您的自定义 validator 对象(可能是 Controller 的 @Autowired)来执行验证

这是一个简单的示例 Controller :

@Controller
public class PersonController {<p></p>

<pre><code>@Autowired
private PersonValidator personValidator;

@RequestMapping(value="person/form", method = RequestMethod.GET)
public ModelAndView form() {
// Instance of binding object
Person person = new Person();

// Create ModelAndView which displays personForm view
ModelAndView mav = new ModelAndView("person/form");
// Put our binding object in the model
mav.getModel().put("person", person);

return mav;
}

@RequestMapping(value="person/form", method = RequestMethod.POST)
public String save(@ModelAttribute Person person, BindingResult errors, Model model) {
// Call our custom validator and put errors into BindingResult
personValidator.validate(person, errors);

// If we have validation errors
if (errors.hasErrors()) {
// Show form with errors
return "person/form";
}

// Otherwise show some success page
return "person/success";
}
</code></pre>

<p>}</p>

关于java - 尝试了解使用 Spring 进行基本表单验证的工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4104150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com