مفاهیم Data Binding و Validation در Spring Framework و روش کار

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
به منظور اعتبار سنجی و اتصال داده ها به لایه های بالا تر مانند handler یا assembler در اسپرینگ فریم وورک استفاده می شود. داده های ورودی توسط کاربر ممکن است که اشتباه وارد شده باشد یا با فرمت های تعیین شده سازگار نباشد و یا ناقص وارد شده باشد. برای مثال وقتی آدرس ایمیل را بدون @ در فیلد ایمیل ورودی وارد کنید خطای Not valid email adress دریافت میکنید.Data binding دقیقا وظیفه دارد که داده های ورودی توسط کاربر را بصورت پویا محدود کند به دامنه ی مدل سازی شده ی یک application. (یا هر objectی که برای پردازش داده های ورودی کاربر استفاده می شود.). اسپرینگ فریم ورک به شما این امکان را می دهد که object ها را از طریق اینترفیس validator اعتبار سنجی کنید. در واقع validator با یک Errors object کار می کند که اگر عملیات اعتبار سنجی یک داده یا شی ناموفق شد آن را به Errors object گزارش دهد.حال به یک مثال ساده از validator می پردازیم ، به کلاس person توجه کنید :

public class Person {

  private String name;
  private int age;

  // the usual getters and setters… 
}

حال می خواهیم کلاس PersonValidator را با استفاده از اینتر فیس Validator پیاده سازی کنیم.به این منظور از دو متد org.springframework.validation.Validator استفده میکنیم:
- supports(Class) :که وظیفه دارد بررسی کند که آیا این کلاس (Person) می تواند validate شود یا خیر
- validate(Object, org.springframework.validation.Errors) :وظیفه دارد که شی ورودی را با کلاس Person مقایسه کند و بررسی کند که دارای محتوا باشد و سن او از صفر کوچک تر و از 110 سال بزرگ تر نباشد که در این صورت خطاهای مربوطه را بیرون درهد( reject کند ) :
-	public class PersonValidator implements Validator {
-	    
-	    /**
-	    * This Validator validates just Person instances
-	    */
-	    public boolean supports(Class clazz) {
-	        return Person.class.equals(clazz);
-	    }
-	    
-	    public void validate(Object obj, Errors e) {
-	        ValidationUtils.rejectIfEmpty(e, "name", "name.empty");
-	        Person p = (Person) obj;
-	        if (p.getAge() < 0) {
-	            e.rejectValue("age", "negativevalue");
-	        } else if (p.getAge() > 110) {
-	            e.rejectValue("age", "too.darn.old");
-	        }
-	    }
-	}


Refrence :

http://docs.spring.io/spring-framework/docs/2.0.6/reference/validation
#اسپرینگ_فریم_ورک #هایبرنیت

نظرات