Kayıtlar

Şubat, 2017 tarihine ait yayınlar gösteriliyor

Spring Ders01 - Spring'e Giriş

Resim
Spring java uygulamalarını yazmayı kolaylaştıran açık kaynaklı frameworktür. Kurumsal uygulamalar yazmak için kullanılır.

Spring'in avantajları
POJO (Plain Old Java Object) sayesinde tanımlanan sınıflar karmaşıklıktan uzaktır.Dependency Injection (DI) desteği vardır.Inversion Control'a sahiptir.Aspect Oriented Programming (AOP) ' ye sahiptir. İlerleyen konularda bunların açıklamalarını yapacağız.
Kısa Bilgiler
Spring uygulamalarında nesneye karşılık düşen öge beandir. Beanler .xml dosyalarında oluşturulur.Standart java projelerinde bean çağrımı main sınıfında gerçekleştirilir.Genel spring stratejisine göre proje için bir interface (arayüz) veya abstract (soyut) sınıf oluşturulur. Bu interface veya abstract sınıfı implement eden bir sınıf oluşturulur. Böylece beanler bu implement/extends eden sınıflardan üretilir. .xml dosyasında üretilen beanler main sınıfında çekilerek kullanılır.Bean Tanımlama
      Gerekli sınıfların daha önce tanımlandığını varsayarsak buna göre beanle…

JSF Ders34 - Faces Flow

Resim
Flowlar sayfa gruplarıdır. Bu gruplara sadece 1 sayfa üzerinden giriş yapılabilir.Giriş yapıldıktan sonra istenildiği gibi bu grup içindeki sayfalarda dolaşılabilir. Flowlardan çıkış ise 1 veya daha fazla sayfdan yapılabilir. Genelde çıkış için tek bir sayfa vardır.

Flowlar flowscoped beani kullanır. Bu scope kullanıcı sayfalar üzerinde istenildiği gibi gezibildiği için view scopetan daha geniştir. Kullanıcı sadece bu sayfalar üzerinde bilgileri saklandığı için ise session scopetan daha dardır.

Yapım aşamaları
Bir flow klasör ismi oluşturulur. (Mesela flowum klasörü).Klasör ismi ile aynı olacak şekilde bir .xml dosyası oluşturulur. (flowum-flow.xml)Klasör ismi ile flowa giriş ismi aynı olacak şekilde başlangıç sayfası oluşturulur. (flowum.xhtml)Diğer sayfalar keyfi oluşturulur.(sayfa1.xhtml,sayfa2.xhtml,.....)Klasör ismi ile aynı olacak şekilde en az bir tane çıkış sayfası oluşturulur.                           (flowum-return.xhtml) Çıkış sayfası üzerindeyken flowdan çıkılabilir vey…

JSF Ders33 - ManagedProperty

Resim
ManagedProperty, bir bean sınıfını başka bir bean sınıfına enjekte etmeye yarar. Bu işleme dependency injection (bağımlılık enjektesi) denir. Bu işlem sayesinde kendisine bean sınıfı enjekte edilen bean sınıfı o sınıfın özelliklerine erişebilir vedeğiştirebilir.

Örneğin Def'ye Abc bean sınıfını enjekte edelim.


@ManagedBean(name="a")
public class Abc{...}



@ManagedBean
public class Def{

@ManagedProperty(value="#{a}")
private Abc abc;

public void setAbc(Abc abc){
    this.abc=abc;
}

public Abc getAbc(){
   return Abc;
}
...
}

Dikkat edilmesi gereken bir husus ilgili sınıfın setter/getter metodunun diğer sınıfta bulunması gerektiğidir.

Aşağıdaki örnekte iki bean sınıfı vardır. Mesaj ve Test bean sınıfları.
Mesaj sınıfı Test sınıfına enjekte edilmekte ve Test sınıfının sayi değişkeni setlendiğinde aynı zamanda managedProperty sayesinde Mesaj sınıfının mesaj değişken değeri değiştirilmektedir.
Bu işlemler sonucunda en son sonucu yazdırırken Mesaj sınıfının yeni mesa…

JSF Ders32 - View Params

Resim
Çoğu kaynak bununla ilgili kafa karıştırıcı cümleler ve örnekler içerir. Konunun özeti şudur.
f:viewParams ile gelen request (istek) parametreleri yakalanırh:link, h:button ile istek parametresi gönderilir. Bu kadar basit. Çoğu site bu işi zorlaştırmak için midir bilinmez örnekleri karmaşıklaştırıyor, konuyu uzatıyor. İşin özü bu kadardır.


<f:metadata>
      <f:viewParam name="..." value="..."/>
      <f:viewParam name="..." value="..."/>
</f:metadata>


ViewParamları metadata içine yerleştirerek kullanır. ViewParamları kullanabilmek için ayrıca isim uzaylarına
xmlns:f="http://java.sun.com/jsf/core" isim uzayını eklenir.

h:link ve h:button yardımıyla parametre gönderilmesi de aşağıdaki şekildedir.


<h:link outcome="sayfa?par1=a&amp;par2=b" value="..."/>

<h:button outcome="sayfa?par1=a&amp;par2=b" value="..."/>



Şimdi örnek programı paylaşalım.

diger.xhtml…

JSF Ders31 - Composite Components (Bileşik Ögeler)

Resim
Composite Components (Bileşik Ögeler) tekrar kullanılabilir ve parametre geçirilebilir
facelet kodlarının ham halidir.

Aşamalar
resource klasörü ve onun altına util(farklı bir isim de olabilir.) klasörü açılır.Bu klasörün içinebir .xhtml uzantılı dosya oluşturulur.Composite component sayfası için xmlns:cc="http://xmlns.jcp.org/jsf/composite" ifadesi isim uzaylarına eklenir.Composite componenti kullanacak sayfa için xmlns:utils="http://xmlns.jcp.org/jsf/composite/utils" ifadesi isim uzaylarına eklenir. Örnek bir composite components dosyası aşağıda verilmiştir.

test.xhtml

<cc:implementation>
test1
</cc:implementation>


Bu dosya

   <utils:test/>


şeklinde çağrılarak kullanılır.
Composite Componentlerde Attribute Kullanımı
Composite componentlerde attributeler interface tagının içine eklenir. Bununla ilgili bir örnek aşağıda verilmiştir.
Attribute parametreleri name: Attribute ismini belirtir.required: Attributeün girilmesini zorunlu kılar.defaul…

JSF Ders30 - Page Template (Sayfa Şablonu)

Resim
Page Template (Sayfa Şablonu), bir sayfaya daha önce oluşturulan sayfa/sayfa içeriğini dahil etmeye yarar.
Örneğin birçok sayfada kullanılan bir arama kutusu, her sayfada tek tek oluşturulmak yerine tek bir sefer oluşturularak bu sayfayı/sayfa içeriğini kullanılacak sayfalara kolayca dahil edilir.

Aşağıda bir template (şablon) sayfa oluşturulumu ve onun kullanışı gösterilmiştir.

sablon.xhtml
<!DOCTYPE ...>
<html xmlns="http://www.w3.org/1999/xhtml"
           xmlns:h="http://xmlns.jcp.org/jsf/html"
           xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head> </h:head>

<h:body>

<ui:insert name="d1">default yazı</ui:insert>
<ui:insert name="d2">default yazı2</ui:insert>
<ui:insert name="d3">default yazı3</ui:insert>

</h:body>

</html>




<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                           xmlns:ui=…