[英]How to validate two or more beans in a Spring Controller method with Hibernate Validator (JSR 303)
我有两个课程(Bean)
public class BeanOne {
@Min(1)
private Integer idBeanOne;
@NotBlank
private String nameBeanOne;
@NotNull
@Min(1)
private Integer idOther;
// ... Getters and Setters
}
public class BeanTwo {
@Min(1)
private Integer idBeanTwo;
@NotBlank
private String nameBeanTwo;
@NotNull
@Min(1)
private Integer idOtherTwo;
// ... Getters and Setters
}
弹簧控制器
// Method in Controller
@RequestMapping(value = "/name.html", method = RequestMethod.POST)
public @ResponseBody
Map<String, Object> submitInsert(@Valid BeanOne one,
@Valid BeanTwo two, BindingResult result) {
if (result.hasErrors()) {
// Errores
} else {
// :D
}
}
有什么方法可以验证两个或多个bean? 我已经成功验证了一个bean,但是没有成功验证两个或多个bean。 我怎样才能做到这一点? 谢谢:D谢谢:D
在尝试使用JSR303验证两个或多个bean之后,尝试使用此解决方案。
public class BeanOne {
@Valid
private BeanTwo beanTwo;
// other beans to validate
@Valid
private BeanN beanN;
@Min(1)
private Integer idBeanOne;
@NotBlank
private String nameBeanOne;
@NotNull
@Min(1)
private Integer idOther;
// ... Getters and Setters
}
public class BeanTwo {
@Min(1)
private Integer idBeanTwo;
@NotBlank
private String nameBeanTwo;
@NotNull
@Min(1)
private Integer idOtherTwo;
// ... Getters and Setters
}
//控制器弹簧
@Controller
public class XController {
@Autowired
private Validator validator;
@RequestMapping(value = "/name.html", method = RequestMethod.POST)
public @ResponseBody Map<String, Object>
submitInsert(BeanOne beanOne, BeanTwo beanTwo, BindingResult result) {
beanOne.setBeanTwo(beanTwo);
// beanOne.setBeabN(beanN);
validator.validate(beanOne, result);
if (result.hasErrors()) {
// Errores
} else {
// :D
}
}
// more code ...
}
但是现在我有另一个问题:(
我有此文件Messages.properties
typeMismatch.java.lang.Integer = Must specify an integer value.
typeMismatch.java.lang.Long = Must specify an integer value.
typeMismatch.java.lang.Float = Must specify a decimal value.
typeMismatch.java.lang.Double=Must specify a decimal value.
当一个字段需要一个数字并且用户输入文本时,此文件可以帮助我捕获异常
这非常适合第一个bean(BeanOne),但不适用于嵌套bean(BeanTwo,BeanN)
我希望他们能帮助我:D
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.