Spring MVC中参数校验失败示例
在Spring MVC中,参数校验通常通过ActionController的@Validated
注解以及Validator
接口实现。如果校验失败,会抛出ValidationException
。
以下是一个参数校验失败的示例:
- 创建一个实体类(User.java):
public class User {
@NotBlank(message = "Username cannot be blank"))
private String username;
// getters and setters
}
- 在ActionController中使用校验(UserController.java):
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class UserController {
@Autowired
private UserService userService;
// action methods for GET and POST
@GetMapping("/user")
public String getUser(ModelMap model) {
User user = userService.getUser(); // assume valid return
model.addAttribute("user", user);
return "user Profile"; // view name
}
@PostMapping("/save-user")
public String saveUser(@Validated @BindingResult User user, ModelMap model) {
if (!user.getName().equals(user.getUsername()))) { // validation error
model.addAttribute("error", "Username and Name must match");
return "save-user"; // view name to show error message
}
userService.saveUser(user); // assume valid return
model.addAttribute("success", "User saved successfully!");
return "user-profile-success"; // view name to show success message
}
}
在这个示例中,User实体类中的username字段使用了@NotBlank
校验注解。在POST请求的saveUser方法中,如果用户输入不匹配,校验会失败并抛出异常,模型视图会被添加错误信息,然后返回视图用于显示错误。
如果校验通过,用户的记录会被保存到数据库中,并显示成功消息。
还没有评论,来说两句吧...