Spring MVC中参数校验失败示例

原创 待我称王封你为后i 2024-12-03 15:36 163阅读 0赞

在Spring MVC中,参数校验通常通过ActionController的@Validated注解以及Validator接口实现。如果校验失败,会抛出ValidationException

以下是一个参数校验失败的示例:

  1. 创建一个实体类(User.java):
  1. public class User {
  2. @NotBlank(message = "Username cannot be blank"))
  3. private String username;
  4. // getters and setters
  5. }
  1. 在ActionController中使用校验(UserController.java):
  1. import org.springframework.beans.factory.annotation.Autowired;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.ui.ModelMap;
  4. import org.springframework.validation.BindingResult;
  5. import org.springframework.web.bind.annotation.GetMapping;
  6. import org.springframework.web.bind.annotation.PostMapping;
  7. @Controller
  8. public class UserController {
  9. @Autowired
  10. private UserService userService;
  11. // action methods for GET and POST
  12. @GetMapping("/user")
  13. public String getUser(ModelMap model) {
  14. User user = userService.getUser(); // assume valid return
  15. model.addAttribute("user", user);
  16. return "user Profile"; // view name
  17. }
  18. @PostMapping("/save-user")
  19. public String saveUser(@Validated @BindingResult User user, ModelMap model) {
  20. if (!user.getName().equals(user.getUsername()))) { // validation error
  21. model.addAttribute("error", "Username and Name must match");
  22. return "save-user"; // view name to show error message
  23. }
  24. userService.saveUser(user); // assume valid return
  25. model.addAttribute("success", "User saved successfully!");
  26. return "user-profile-success"; // view name to show success message
  27. }
  28. }

在这个示例中,User实体类中的username字段使用了@NotBlank校验注解。在POST请求的saveUser方法中,如果用户输入不匹配,校验会失败并抛出异常,模型视图会被添加错误信息,然后返回视图用于显示错误。

如果校验通过,用户的记录会被保存到数据库中,并显示成功消息。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,163人围观)

还没有评论,来说两句吧...

相关阅读