0
Я хочу реализовать пользовательскую проверку для моего объекта. вот мои сущности. на самом деле я хочу проверить объект корзин и когда он удаляет null из списка. Когда я запускаю код, эта ошибка возникает. Свойство «bean» свойства bean не читается или имеет неверный метод getter: соответствует ли тип возвращаемого значения getter типу параметра setter?Пользовательская проверка весной MVC
public class TypistData {
private List<BasketData> baskets;
private DateData orderDate;
//getter and setter
}
public class BasketData {
private HashedLong id;
private CustomerData customer;
private Long discount;
private String comment;
private HashedLong region;
private List<OrderData> orders;
//getter and setter
}
и мой заказ валидация
public class TypistDataValidation implements Validator {
@Override
public boolean supports(Class<?> aClass) {
return aClass.isAssignableFrom(TypistData.class);
}
@Override
public void validate(Object o, Errors errors) {
TypistData typistData = (TypistData)o;
List<BasketData> basketDatas = typistData.getBaskets();
if(typistData.getOrderDate()== null
errors.rejectValue("orderDate","orderDate","can not be null");
for(BasketData data:basketDatas){
if(!isEmpty(data)){
validateBasket(data,errors);
} else basketDatas.remove(data);
}
}
private boolean isEmpty(BasketData basketData){
if(basketData.getCustomer()== null && basketData.getOrders().size()==0
&& basketData.getComment()== null
&& basketData.getDiscount()==null
&& basketData.getRegion()==null)
return true;
return false;
}
private void validateBasket(BasketData basketData,Errors errors){
if(basketData.getRegion() == null)
errors.rejectValue("region","can not be null");
if(basketData.getDiscount()== null)
errors.rejectValue("discount","can not be null");
if(basketData.getComment() == null)
errors.rejectValue("comment","can not be null");
if(basketData.getOrders().size() == 0)
errors.rejectValue("orders","can not be null");
if(basketData.getCustomer() == null)
errors.rejectValue("customer","can not be null");
}
}
IMHO Ваш код сомнительно, что ваш валидатор не проверяет, что он изменяет объекты, валидатор должен только проверять и ничего не делать. Рядом с этим я ожидал бы, что в этом коде произойдет исключение параллельной модификации. Также, когда вы получаете эту ошибку? Поместите фактический геттер/сеттер для поля. –
проверьте свои методы getter & setter, они должны соответствовать свойству "comment" – underdog