Merhabalar değerli Java dostları,
Bugünkü yazımda, dün olduğu gibi, yine basit, pratik ve kullanışlı bir interface tanıtmak istiyorum. Validator, içerisinde supports() ve validate() metotlarını barındırır. Supports() validate işlemi için bir ön işlem olarak düşünülebilir. Doğrulama işlemi yapılıp yapılmayacağına bir nevi karar verildiği metottur. Validate işlemi işe içerisinde business logic kurallarına göre işlemler yapan ve olası doğrulama hatalarını Errors nesnesine gömen bir metottur. İsterseniz çok uzatmadan örneğimize geçelim.
package anajavatica.spring.validation; public class Employee { private String id = “”; private int wage = 0; public Employee(String id, int wage) { super(); this.id = id; this.wage = wage; } public String getId() { return id; } public int getWage() { return wage; } } |
package anajavatica.spring.validation; import org.springframework.validation.Errors; import org.springframework.validation.ValidationUtils; import org.springframework.validation.Validator; public class EmployeeValidator implements Validator { @Override public boolean supports(Class<?> arg0) { return Employee.class.equals(arg0); } @Override public void validate(Object arg0, Errors arg1) { ValidationUtils.rejectIfEmpty(arg1, “id”, “id.empty”); Employee p = (Employee) arg0; if (p.getWage() <= 0) { arg1.rejectValue(“wage”, “Employee must have wage!”); } } } |
package anajavatica.spring.validation; import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.validation.Errors; import org.springframework.validation.Validator; public class ValidatorMain { public static void main(String[] args) { Validator employeeValidator = new EmployeeValidator(); Employee validEmployee = new Employee(“1”, 0); Errors errors = new BeanPropertyBindingResult(validEmployee, “wage”); employeeValidator.validate(validEmployee, errors); System.out.println(errors.toString()); } } |
Öncelikle basit bir bean sınıfımız var ve adı Employee. Sonrasında bizim için temel noktayı teşkil eden EmployeeValidator sınıfımız geliyor. validate() içerisinde id alanının boş olup olmadığını kontrol ediyoruz. Ayrıca ek kontrol olarak bir çalışanın mutlaka bir maaşının olması gerektiğini vurguluyoruz. Kendiniz de main içerisinde Employee new edilirken verilen parametreler ile oynayarak oluşan çıktılardaki farkları görebilirsiniz.
Bol Java’ lı günler dileğiyle…
Yazan: Faruk BOZAN