Kayıtlar

jsf etiketine sahip yayınlar gösteriliyor

JSF Ders28 - Döngü Kullanımı (ui:repeat) ve Koşullu Çıktı Üretimi

Resim
Döngü Kullanımı    JSF'de döngü kullanımı ui:repeat ögesiyle yapılır. ui:repeat ögesinin örnek bir kullanımı aşağıda belirtilmiştir. <ui:repeat var=”i” value=”#{sinifIsmi.degiskenIsmi}”>        #{i} </ui:repeat> Örneğin, value kısmında bir dizi tutulduğu varsayıldığında yukarıdaki kod bu dizinin her bir elemanının tek tek yazdıracaktır. ui:repeat ögesinin kullanılabilmesi için aşağdaki isim uzayını .xhtml dosyasına eklemeyi unutmayın. xmlns:ui="http://xmlns.jcp.org/jsf/facelets" ui:repeat parametreleri ui:repeat ogesinin alabileceği bir çok parametre vardır. Bunlar aşağıda listelenmiştir. varStatus : last,first,even,odd gibi özel argüman geçirilebilen parametre. offset        : Döngünün başlayacağı indisi belirtir. size           : Döngünün toplam adım sayısını belirtir. step          : Döngünün kaçar adımla ilerleyeceğini belirtir. Koşullu Çıktı Üretimi     Bir çıktının koşula bağlı olarak üretilmesi için birçok se

JSF Ders27 - Validating (Doğrulama)

Resim
    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=&quo

JSF Ders26 - JSF Ajax

Resim
    Ajax desteği sayfa üzerinde sadece gerekli yerlerde güncellemeler yapabilmeye yarar. Mesela ajax kullanmadığınızı varsayalım. Bir formu doldurdunuz ve göndereceksiniz.Form gönderilir ve cevap olarak yeni bir sayfa gönderilir.  Ajax'ı kullandığınızda ise formu gönderirsiniz ve cevap olarak aynı sayfa üzerinde sadece küçük bir yeri değiştirecek bilgi gönderilir ve o kısım güncellenmiş olur. <h:commandButton … action="…">       <f:ajax render=" deneme "/> </h:commandButton> <h:outputText … value="#{…}" id=" deneme " /> Yukarıda ajax kullanımına bir örnek verilmiştir. Siz commandButona bastığınızda gelişecek olaylar aşağıda sıralanmıştır. Form sunucuya gönderilir. id="deneme" olan sonuç hesaplanır ve istemciye gönderilir. İstemci tarafında id="deneme" olan çıktı yerleştirilir. Ajax Attributeleri render   : Sayfada tekrar gösterilecek elemanları belirtir. (outpu

JSF Ders25 - Properties Dosyaları

Resim
    Properties dosyaları içerisinde "anahtarKelime = değer" şeklinde ifadeler içeren dosyalardır. Kullanılma amaçları Tüm sayfalarda aynı değere ulaşabilmek için kullanılır. Sadece properties dosyasında yapılan değişiklikle properties dosyasını kullanılan tüm sayfalarda otomatik olarak güncelleme sağlar. Kullanılışı WEB-INF/classes dizini üzerinde bir .properties uzantılı dosya oluşturulur. faces-config.xml dosyası içerinde resource bundle ile .properties dosyası tanımlanır. <application>      <resource-bundle>             <base-name> propertiesDosyaIsmi </base-name>             <var> erisimIsmi </var>      </resource-bundle> </application> Erişim şu şekilde sağlanır. #{erisimIsmi.anahtarKelime} Parametreli .properties dosyası .properties dosyası içinde parametreli anahtar kelimeler tanımlanabilir. Örneğin aşağıdaki test.properties dosyası tanımlanmış olsun. WEB-INF/clas

JSF Ders24 - Event Handling (Olay İşleme)

Resim
Event Listener çeşitleri ActionListener ValueChangeListener ActionListener <h:commandButton value="sunuYap" actionListener="#{test.sunuYap}/> public void sunuYap(ActionEvent e){          //………….. } actionListener aslında action argümanına benzerlik göstermektedir.Direkt olarak aralarındaki farkları anlatırsak daha iyi anlaşılacaktır. action un genelde amacı bean doldurmak ve navigation işlemi yapmaktır. actionListener ın amacı sadece olayı işlemektir. (İsteğe göre bean doldurulabilir veya doldurulmayabilir. Doğrudan olmasa da dolaylı yollarla navigation işlemi yapılabilir veya hiç yapılmayabilir.) action içerisine yazılan metot String return tip lidir ve bu return değeri sayesinde navigation işlemi yapar. actionListener metodu void return tip lidir   ActionEvent argümanı alır ve belli bir görevi yerine getirir. action ile yeni bir sayfaya yönelim olur, actionListener ise sadece sayfa yenilenir. Bazen bir işin bean nes

JSF Ders23 - Sayfa Navigasyonu (Page Navigation)

   Sayfa navigasyonu (Page Navigation) açık (explicit) veya örtülü (implicit) şekilde yapılabilir. Bu konuda bahsedilecek mevzular Açık (explicit) navigation Örtülü (implicit) navigation Koşullu navigation Statik (Static) navigation Dinamik (Dynamic) navigation Açık (explicit) Navigation ve Örtülü (implicit) Navigation Örtülü (implicit) navigationu zaten tüm projelerde yaptığımız için onu uzun uzun açıklama gereği duymuyorum. Kısaca Managed Bean sınıfları üzerinde yapılan navigasyon olarak aklınızda tutabilirsiniz. Form üzerinde basılan buton (commandButton,commanLink) bir metot çağırıyor ve bu metodun geriye dönüş değeri gideceğiniz sayfanın ismi olmuş oluyor.Bu kadar.  Açık (explicit) navigation faces-config.xml dosyasında belirtilir. <navigation-rule>      <from-view-id> /index.xhtml </from-view-id>          <navigation-case>          <from-outcome> deger1 </from-outcome>          <to-view-id> /sonuc1.xhtml &l

JSF Ders22 - Bean Scopes

    Bean scopeları managed beanin ne kadar süre canlı kalacağını, hangi kullanıcı ve isteklerin önceki bean örneğine erişebileceğini kontrol eder. Bir çok scope türü mevcuttur. Request Scope  (@RequestScope) Session Scope   (@SessionScope) Application Scope  (@ApplicationScope) ViewScoped (@ViewScoped) FlowScoped (@FlowScoped) CustomScoped (@CustomScoped) NoneScoped (@NoneScoped) Bir managed bean sınıfında eğer scope belirtilmezse default olarak RequestScope seçilmiş olur. Request Scope (@RequestScope) Yaşam süresi sadece yapılan istekle sınırlıdır. Aynı kullanıcı aynı sayfa üzerinde yeni bir istek dahi oluştursa yeni bir bean örneklenir. Beane diğer kullanıcılar tarafından erişilemez. Daha önce tanımlanan bean örneğine kimse erişemez. Session Scope  (@SessionScope) Yaşam süresi session (oturum) boyunca devam eder. Aynı kullanıcı farkla sayfalar üzerinde yeni bir istek oluşturursa aynı bean örneği kullanılmaya devam eder. Beane diğer kullanıcılar tarafından eri