我正在開發一個使用Hibernate Validator進行表單驗證的Spring應用程序。我有一個看起來像這樣的DTO:Hibernate Validator for forms:如何驗證非常相似的DTO的
public class RegisterUserDTO {
@Size(min=3)
private String inputName;
@Email
private String inputEmail;
@Size(min=3)
private String inputPassword;
[...]
}
其中是必需的。其他地方,我需要使用相同的輸入參數,但驗證略有不同:
public class RegisterUserDTO {
@Size(min=3)
private String inputName;
@Email
private String inputEmail;
//@Size(min=3)
private String inputPassword;
[...]
}
不是必需的。
如何在兩種情況下使用相同的DTO? 如果這是不可能的,解決這種情況的最乾淨的方法是什麼?
PS_下面的示例使用的DTO在控制器:
@RequestMapping(value = "https://stackoverflow.com/users/add", method = RequestMethod.POST)
public String saveUser(ModelMap model, @Valid RegisterUserDTO registerUserDTO, BindingResult result) {
String template = "/path/to/addUser";
if (result.hasErrors()) {
User user = new User(registerUserDTO.getInputName(), registerUserDTO.getInputPassword(), registerUserDTO.getInputEmail());
model.addAttribute("user", user);
model.addAttribute("errors", result.getFieldErrors());
} else {
User user = userService.insertUser(registerUserDTO.getInputEmail(), registerUserDTO.getInputName(), registerUserDTO.getInputPassword());
template = "redirect:/path/to/edit/users/" + user.getId();
}
return template;
}
聽起來你尋找驗證小組。 – chrylis
@chrylis可能是這種情況。你有鏈接嗎? – Tk421
@ Tk421查看Spring MVC驗證組的鏈接:http://blog.codeleak.pl/2014/08/validation-groups-in-spring-mvc.html – Pranav