JSF İl – İlçe Seçimi

JSF ile il ve ilçe seçimi gibi action yöntemleri arıyorsanız aşağıdaki örnek işinizi görebilir. Buna göre şehir seçimi sonrası ilçeler otomatik olarak yüklenecektir. JSF eventini burada valueChangeListener yakalayacaktır.
Ancak ben yinede PrimeFaces ve A4J ajax suppor ile yapmanızı tavsiye ederim.

JSF ön yüz

    <h:selectOneMenu value="#{demoBean.sehir}" immediate="true" valueChangeListener="#{demoBean.valueChangeMetod}" onchange="submit();">
     <f:selectItem itemValue="06" itemLabel="Ankara"/>
     <f:selectItem itemValue="34" itemLabel="Istanbul"/>
     <f:selectItem itemValue="35" itemLabel="Izmir"/>
    </h:selectOneMenu>
    <br />
    <h:selectOneMenu value="#{demoBean.ilce}">
     <f:selectItems value="#{demoBean.ilceler}"/>
    </h:selectOneMenu>

ManagedBean dosyası

    import java.util.ArrayList;
    import java.util.List;
     
    import javax.faces.event.ActionEvent;
    import javax.faces.event.ValueChangeEvent;
    import javax.faces.model.SelectItem;
     
     
    public class DemoBeanDort {
     private String sehir;
     private String ilce;
     
     private List<SelectItem> ilceler = new ArrayList<SelectItem>();
     
     public void valueChangeMetod(ValueChangeEvent event){
      System.out.println("valueChangeMetod calisti");
      ilceler.clear();
      if(event.getNewValue().equals("06")){
       ilceler.add(new SelectItem("Cankaya"));
       ilceler.add(new SelectItem("Kizilay"));
      }
      else if(event.getNewValue().equals("34")){
       ilceler.add(new SelectItem("Besiktas"));
       ilceler.add(new SelectItem("Kadikoy"));
      }
      else if(event.getNewValue().equals("35")){
       ilceler.add(new SelectItem("Karsiyaka"));
       ilceler.add(new SelectItem("Bornova"));
      }
     }
     
     //getter ve setter metodları
     
    }
  1. Jun 18th, 2010 at 23:15 | #1
  2. Jun 18th, 2010 at 23:51 | #2

    +1 adamim :)

  3. Jan 10th, 2011 at 06:33 | #3

    Slm;
    hocam bugünlerde try catch blogunda bulunan entity manager olustururken
    No Persistence provider for EntityManager named Oys
    şeklinde hata alıyorum.Bide persistence.xml de vermiş oldugum provider yolunda(org.hibernate.ejb.HibernateManager) sadece orm.xml diye bir dosya var.Hatanın sebebini bir türlü çözemedim.Daha önce çalışan bir proje şimdi çalışmıyor.Bu arada proje jsf 2.0 ve primefaces kullanarak yapmaya çalısıyorum.Kolay gelsin.

  4. Jan 10th, 2011 at 12:32 | #4

    Sorun jpa ile ilgili. Oys adinda bir persistence unit bulamiyor.

  5. esin gülten
    Aug 31st, 2011 at 10:17 | #5

    merhaba hocam,
    selectOneMenu de valueChangeListener kullanarak change eventinde işlemlerimi yaptırıyorum fakat sayfa refresh oluyor. queryString de veya sessiondaki bilgiler uçuyor. ajax update kullanarak yaptığımda change den önceki değer geliyor birde bu degere bağlı bir bileşeni render ediyorum. o bileşende render edildikten sonra selectonemenuden gelen değere göre reRender olması gerekiyor. (sayfa ilk yuklendiğinde gelen değere göre render oluyor change eventinde reRender olmuyor).
    richFaces kullanmadım. sadece primefaces ve faces ın ajax ını kullandım. onlarda reRender gibi birşey göremedim.
    bu konuyla ilgili yorum yapabilirmisiniz.

    İyi Çalışmalar
    Saygılarımla…

  6. Sep 7th, 2011 at 11:26 | #6

    valueChangeListener yerine ajax uzerinden update edilen veriyi okuyabilirseniz daha iyi olur.

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>