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"/>


veya


<h:… reuqired="true" requiredMessage="bos birakilamaz !" id="mesaj1"/>
<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.

Bir form öğesini belli bir tipte olmasını zorunlu kılmak için aşağıdaki ifade kullanılır. Böylece form öğesinin value kısmında yazan değiskenin tipi ile girilen değerin aynı tipte olması zorunlu hale getirilir.
  • converterMessage="..."

<h:… required="true" requiredMessage=".." converterMessage="girilen değer int olmali"/>


Bir form öğesinde girilen değerin belli bir aralıkta olmasını zorunlu kılmak için
  • f:validateLength
  • f:validateLongRange
  • f:validateDoubleRange
değerlerinden biri minumum ve/veya maximum parametreleri ile sağlanır.
  • f:validateRegex
ise pattern parametresi ile sağlanır.


<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:…>



Kisi.java
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>

JSF Validating

JSF Validating

JSF Validating

JSF Validating

JSF Validating

Yorumlar

Bu blogdaki popüler yayınlar

Java SE Ders24 - Composition (Kompozisyon)

Spring Ders20 - Aspect Oriented Programming - AspectJ Annotation Style

JSF Ders30 - Page Template (Sayfa Şablonu)