[英]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.