2015-07-16 2 views
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"); 
} 

}

+0

IMHO Ваш код сомнительно, что ваш валидатор не проверяет, что он изменяет объекты, валидатор должен только проверять и ничего не делать. Рядом с этим я ожидал бы, что в этом коде произойдет исключение параллельной модификации. Также, когда вы получаете эту ошибку? Поместите фактический геттер/сеттер для поля. –

+0

проверьте свои методы getter & setter, они должны соответствовать свойству "comment" – underdog

ответ

-1

В вашем BasketData классе вы должны иметь метод получения для поля комментария.

public String getComment() { 
     return this.comment; 
} 
Смежные вопросы