Struts 2 nin server side validation da bize büyük kolaylık sağladığını daha öncede belirtmiştim. Bu yazımda sizlere anlatmaya çalışacağım örnekte sizleri şaşırtacak diye düşünüyorum. Struts 2 Validation konusunu 2 yazı ile örneklendirmemdeki sebepde bu yüzden di.
Struts 2 Validation -1- başlıklı yazımda validation ayar dosyasını yaratmayı ve nasıl yaratmamız gerektiğini öğrendik . Bununla ilgilide form elemanlarını boş bırakamamak için bir kontrol örneği yazdık.
LoginForm projesinde validation ile ilgili çeşitli varyasyonlarda örnekler yapmaya başlayabiliriz.
1. İlk örneğimiz olarak string uzunluk kontrolü yapalım. Şifre alanına min 6 max 10 uzunluğunda değer girilebilsin;
Daha önceden oluşturmuş olduğumuz Login-Login_doLogin-validation.xml dosyasını açıyoruz ve “Struts 2 Validation -1-” yazımda yaptığımız dosya içeriğini aşağıdaki gibi düzenliyoruz.
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Kullanici adini bos birakamazsiniz!!!</message>
</field-validator>
</field>
<field name="password">
<!-- Burda normal boş geçilemez kontrolünü yapıyoruz -->
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Sifre bos birakamazsiniz!!!</message>
</field-validator>
<!-- Burda ise stringlength type ı ile min ve max değerler
vererek string uzunluk kontrolü yapıyoruz -->
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">10</param>
<param name="trim">true</param>
<message>Sifre max 10 min 6 karakter olmalıdır</message>
</field-validator>
</field>
</validators>
2. Şimdi de kullanıcı adı alanına sadece e-posta girilebilsin;
Dosya içeriğini aşağıdaki gibi değiştiriyoruz. 1. örnek te yaptığımız şifre uzunluk kontrolü de kalıyor.
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Kullanici adini bos birakamazsiniz!!!</message>
</field-validator>
<!-- field type olarak email yazıyoruz. Regular expression olarak
\\b(^[_A-Za-z0-9-](\\.[_A-Za-z0-9-])*@([A-Za-z0-9-])+((\\.com)|(\\.net)|
(\\.org)|(\\.info)|(\\.edu)|(\\.mil)|(\\.gov)|(\\.biz)|(\\.ws)|(\\.us)|
(\\.tv)|(\\.cc)|(\\.aero)|(\\.arpa)|(\\.coop)|(\\.int)|(\\.jobs)|
(\\.museum)|(\\.name)|(\\.pro)|(\\.travel)|(\\.nato)|(\\..{2,3})|
(\\..{2,3}\\..{2,3}))$)\\b
yukarıdaki kontrolü yapmaktadır. -->
<field-validator type="email">
<message>Kullanici adina e-posta girmelisiniz!!!</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Sifre bos birakamazsiniz!!!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">10</param>
<param name="trim">true</param>
<message>Sifre max 10 min 6 karakter olmalıdır</message>
</field-validator>
</field>
</validators>



