JSF Ders27 - Validating (Doğrulama)
JSF form öğelerinin belirli bir kurala göre veya kuralsız olarak doldurulması zorunlu kılınabilir. Bu olay validating (doğrulama) işlemi olarak adlandırılır.
Bir form öğesinin doldurulmasını zorunlu kılmak için aşağıdaki ifade kullanılır.
- required="true"
<h:… required="true" requiredMessage="bos birakilamaz"/> |
<h:message for id="mesaj1"/> |
* requiredMessage validating (doğrulama) işlemi boş bırakıldığı için geçersiz olduğunda gösterilecek mesajı belirtir.
* h:message öğesi sayesinde validating mesajını göstermek istediğimiz yeri ayarlayabiliriz.
- converterMessage="..."
- f:validateLength
- f:validateLongRange
- f:validateDoubleRange
- f:validateRegex
<h:….> <f:validateDoubleRange minimum="1.0" maximum="100.0"/> </h:…> |
<h:….> <f:validateLength minimum="1" maximum="10"/> </h:…> |
<h:….> <f:validateLongRange minimum="15" maximum="25000000"/> </h:…> |
<h:….> < f:validateRegex pattern="..."/> </h:…> |
package test; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @SessionScoped @ManagedBean public class Kisi { private String ad; private int yas; private int bakiye; private double puan; public String getAd() { return ad; } public void setAd(String ad) { this.ad = ad; } public int getYas() { return yas; } public void setYas(int yas) { this.yas = yas; } public int getBakiye() { return bakiye; } public void setBakiye(int bakiye) { this.bakiye = bakiye; } public double getPuan() { return puan; } public void setPuan(double puan) { this.puan = puan; } }
index.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>index.xhtml</title> </h:head> <h:body> <h:form> Ad<br /> <h:inputText value="#{kisi.ad}" required="true" requiredMessage="Ad bos gecilemez" converterMessage="Ad bir karakter dizisi olmalı" validatorMessage="Ad sadece harf içermeli"> <f:validateRegex pattern="[A-Za-z]+" /> <f:validateLength minimum="3" maxiumum="15"/> </h:inputText><br /><br /> Yas<br /> <h:inputText value="#{kisi.yas}" required="true" requiredMessage="Yas bos gecilemez" converterMessage="Yas bir tamsayi olmalı" validatorMessage="Yas 18-35 araliginda olmali."> <f:validateLongRange minimum="18" maximum="35"/> </h:inputText><br /><br /> Bakiye<br /> <h:inputText value="#{kisi.bakiye}" required="true" requiredMessage="Bakiye bos gecilemez" converterMessage="Bakiye bir tamsayı olmalı." validatorMessage="Bakiye 1-10000000 arasinda olmali." > <f:validateLongRange minimum="1" maximum="10000000"/> </h:inputText><br /><br /> Puan<br /> <h:inputText value="#{kisi.puan}" required="true" requiredMessage="Puan bos gecilemez" converterMessage="Puan bir noktalı sayi olmalı." validatorMessage="Puan 0.0-100.0 arasinda olmalı."> <f:validateDoubleRange minimum="0.0" maximum="100.0"/> </h:inputText><br /><br /> <h:commandButton value="gonder" action="sonuc?faces-redirect=true" /> <h:messages style="color:red; text-decoration:underline;"/> </h:form> </h:body> </html>
sonuc.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>sonuc.xhtml</title> </h:head> <h:body> Ad<br /> <h:outputText value="#{kisi.ad}" /><br/><br /> Yas<br /> <h:outputText value="#{kisi.yas}" /><br/><br /> Bakiye<br /> <h:outputText value="#{kisi.bakiye}" /><br/><br /> Puan<br/> <h:outputText value="#{kisi.puan}" /> </h:body> </html>
Yorumlar
Yorum Gönder