I am making a model object with some JSR-303 validation annotation:
public class UserInfoBasicModel implements Serializable{
@NotNull(message="cannot be null")
@NotEmpty(message="cannot be empty")
private String name;
}
Automatic data binding to the controller:
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(method = RequestMethod.POST, value = "/registry/")
public String registry(HttpServletRequest request,
ModelMap modelMap,
@Valid UserInfoBasicModel userInfoBasicModel,
BindingResult result) {
}
}
In the above scenario, it works great for validation. But when I encapsulate the model in another object, as shown below, checking for UserInfoBasicModel no longer works:
An object that encapsulates a UserInfoBasicModel object:
public static class UserUpdateFormTransmitter {
@Valid
private UserInfoBasicModel userInfoBasicModel;
}
controller:
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(method = RequestMethod.POST, value = "/registry/")
public String registry(HttpServletRequest request,
ModelMap modelMap,
@Valid UserUpdateFormTransmitter userUpdateFormTransmitter,
BindingResult result) {
}
}
I am wondering why @valid annotaion works recursively in the same way as JSR 303: Bean Validation says.Could any one give me a solution so that I can recursively return my object, thanks a lot !!!!
source
share