首页  >  文章  >  Java  >  如何在 Spring MVC 应用程序中验证用户输入?

如何在 Spring MVC 应用程序中验证用户输入?

Patricia Arquette
Patricia Arquette原创
2024-11-02 07:41:29239浏览

How can I validate user inputs in a Spring MVC application?

使用 Spring MVC 验证用户输入的方法

简介

构建 Web 应用程序时,确保用户输入的有效性至关重要。 Spring MVC 提供了多种表单验证方法,每种方法都有其优点和适合特定场景的方法。

方法一:基于注解的验证

Spring 3.x 引入了注解(例如,@NotNull)用于简洁的字段级验证。这些注释是 JSR-303 标准的一部分。

示例:

<code class="java">public class User {

    @NotNull
    private String name;

    // ...
}</code>

在控制器中:

<code class="java">@PostMapping("/user")
public void createUser(@Valid @ModelAttribute User user, BindingResult result) {
    // Check for validation errors in the `result` object.
}</code>

方法二:手动验证

对于复杂的验证逻辑,Spring 提供了 org.springframework.validation.Validator 接口。可以实现自定义验证器来执行特定的验证。

示例:

<code class="java">public class UserValidator implements Validator {

    // Validation code here

}</code>

在控制器中:

<code class="java">@PostMapping("/user")
public void createUser(@ModelAttribute User user, BindingResult result) {
    UserValidator validator = new UserValidator();
    validator.validate(user, result);

    // Check for validation errors in the `result` object.
}</code>

方法3:混合方法

注释和手动验证可以结合起来。使用注释进行简单验证,使用验证器进行复杂逻辑。

示例:

<code class="java">public class User {

    @NotNull
    private String name;

    // ...
}</code>

自定义验证器:

<code class="java">public class UserValidator implements Validator {

    // Complex validation code here

}</code>

在控制器中:

<code class="java">@PostMapping("/user")
public void createUser(@Valid @ModelAttribute User user, BindingResult result,
                     UserValidator validator) {
    validator.validate(user, result);

    // Check for validation errors in the `result` object.
}</code>

其他注意事项

  • 验证处理不应与异常处理混淆。
  • 避免在控制器中进行内联验证以保持它精益且可维护。
  • 考虑使用自定义验证注释来抽象复杂的验证逻辑。

参考文献:

  • [Bean使用 Spring 进行验证](http://www.codejavu.com/platform/spring/bean-validation-with-spring-annotations/)
  • [Spring MVC 中的验证](https://www.baeldung .com/spring-mvc-validation)
  • [Spring 验证文档](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/web.html# mvc-ann-验证)

以上是如何在 Spring MVC 应用程序中验证用户输入?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn