java server faces -...

29
Java Server Faces Ahmet Demirelli Sabancı Üniversitesi 2007

Upload: nguyenxuyen

Post on 10-Nov-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Java Server Faces

Ahmet Demirelli

Sabancı Üniversitesi

2007

Ajanda

�Model-1 Mimari

�Model-2 Mimari

�MVC Framework

�Java Server Faces

�Örnek Uygulama

Model 1 Mimari

JSP(View)

JavaBeans(Model)

1 2 3

Client Server Database

456

� HTML form bilgisini JSP veya Servlet`e gönderir (1)� JSP den İş bileşenlerine bağlanır (2)� İş bileşenleri database işlemlerini yapar (3-4)� Yapılan işlem sonucu JSP ye bil gi döner (5)� JSP dönen sonucu clienta gönderir (6)

Model 1 Dezavantajları

�Bakım zorluğu

�Hataların bulunma zorluğu

�Sayfa akış düzenini değiştirme zorluğu

�Modüler olmayan uygulamalar�Sisteme yeni modüller ekleme zorluğu

�Güncelleme problemi

Model 2 Mimari (MVC)

Controller(Servlet)

JavaBeans(Model)

1

2

Client Server

Database

3

45

6JSP

(View)

2`

� HTML form bilgisini Controller Servlete gönderir (1)� Controller Servlet yapılması gereken işlemi belirler

� İşlem sadece yönlendirme işlemi ise başka bir jsp ye yenlendirir (2)� İşlem iş bileşenleri ile ilgili ise iş bileşenlerini çağırır (2`)

� İş bileşenleri database işlemlerini yapar (3-4)� Yapılan işlem sonucu JSP ye bilgi döner (5)� JSP dönen sonucu clienta gönderir (6)

MVC – (Model)

�Model (İş bileşenleri katmanı)� Verilerin ve iş kurallarının işlendiği katmandır

� Bu katmanda yapılanlar;�Database sorgulamaları�İş kurallarının kontrolü

�Veri ve uygulama kuralları katmanını (business layer) sunum katmanından (presentation layer) ayırır

MVC – (View)

�View (Sunum katmanı)� Client tiplerine göre sunumun düzenlenmesi

� İş katmanında işlenen verilerin gösterilmesi

MVC – (Controller)

�Controller (Kontrol katmanı)�Uygulamaya gelen isteklerin nasıl işleneceğine ve sonucunun nasıl gösterileceği bilgisini tutar

�Kullanıcı isteklerine göre hangi iş bileşenlerinin çalışacağına karar verir

� İş bileşenlerinden gelen bilgilerin sunum katmanında hangi görüntü bileşenine yönlendirileceğineve nasıl görüntüleneceğine karar verir�Ör : Dil seçenekeleri veya rollere göre sayfaların görüntülenmesi

Model 2 (MVC) Avantajları

�Hızlı uygulama geliştirme imkanı (RAD)

�Esnek ve moduler yapı

�Sayfa akış kontrolu merkezi olması

�Katmanların net olarak birbirinden ayrılması

Model 2 (MVC)Dezavantajları

�Sağlam bir MVC uygulaması yazmak iyi bir tasarım ve kodlama gerektirir

�Her bir istek (request) için arka planı tasarlanmalıdır.(Controller, Model ve View bileşenleri tasarlanmalıdır)

� Fakat bunun için sıfırdan başlamamız gerekmiyor MVC Frameworkleri kullanabiliriz.

Neden MVC Framework?

�Uygulamaları MVC mimarisinde geliştirmek için iyi bir planlama ve katman tasarımı gerekir

�MVC Uygulaması geliştirmek için kendi mimarinizi oluşturmak uygulama geliştirme zamanını uzatabilir

�MVC Uygulamaları geliştirmeye hızlı bir başlangıç yapmayı sağlar

�Katmanların oluştururulmasını kolaylaştırır�Uygulama geliştiricilere kullanabilecekleri ve genişletebilecekleri sınıflar sunarlar

�Girdi kontrolü kolaylaştırır�Uygulamaların internalizationunu kolaylaştırır

Java Server Faces

�Web uygulamala arayüzleri geliştirmeyi kolaylaştıran java tabanlı Web Framework tanımlaması ve referans uygulamasıdır.

� JSF Açık kaynak kodlu standarttır: JSR 127�Java Community Process : www.jcp.org�JSF, Java EE teknolojisinin bir parçasıdır

Java Server Faces

�Neden Kullanılmalı ?�Hazır MVC altyaspısını sağlar�Uygulama geliştiricilerin rollerini ayırır�Genişletilerbilir bir komponent altyapısı sunar�Standarttır ***�Endüstri desteği hergün artmaktadır�Hızlı uygulamalar geliştirmemizi sağlar (uygun geliştirme araçları ile sürükle-bırak yaparak geliştirme imkanı sunar)

� Java nın ASP.NET e cevabıdır

Java Server Faces

� • JSF Framework içerisinde;� Java sınıfları

�“Faces” bileşenleri : HTML bileşenlerinin sunucu tarafındaki karşılıkları (text, buttons, checkboxes, etc.)

� FacesServlet (Controller)� Yardımcı sınıflar (Validator, Converter..etc)

�Tag kütüphaneleri� Hazır tag kütüphaneleri

�Konfigürasyon dosyası (faces-config.xml)�JSF projesi konfigürasyonu: sayfa geçişleri ve yönlendirmeleri, Uygulamada kullanılacak olan JavaBean (ManagedBean / BackingBean) tanımları

Java Server Faces � JSF yaşam döngüsü;

� Request geldiğinde sayfadaki view ID ile bir

Java Server Faces

�JSF Request yaşam döngüsü

�Komponent ağacının oluşturulması

�Request değerlerinin atanması

�Girdi kontrollerinin yapılması

�Model değerlerinin güncellenmesi

�Uygulamanın çağırılması

�Response un oluşturulması

Java Server Faces

�JSF önyüz (page1.jsp)

<f:view>

<h:form>

<h:inputText id="name" value="#{student.name}" /> <br>

<h:inputText id="lname" value="#{student.age}" /><br>

<h:commandButton id=“click" value=“click“

action="#{student.saveData}" /><br>

</h:form>

</f:view>

Java Server Faces

�ManagedBean / BackingBean

public class Student {

private String name;

private String age;

public Student() { }

public String getName() { return name;}

public void setName(String name) { this.name = name;}

public String getAge() { return age; }

public void setAge(String age) { this.age = age; }

public String saveData() {

//save data to database and return “success”

}

}

Java Server Faces

�faces-config.xml

<managed-bean><managed-bean-name>student</managed-bean-name><managed-bean-class>edu.sabanciuniv.Student</managed-bean-class><managed-bean-scope>session</managed-bean-scope>

</managed-bean>

� Scopes� request

� session

� application

Java Server Faces

�Sayfa yönlendirmesi<navigation-rule>

<from-tree-id>/page1.jsp</from-tree-id>

<navigation-case>

<from-outcome>success</from-outcome>

<to-tree-id>/success.jsp</to-tree-id>

</navigation-case>

<navigation-case>

<from-outcome>failed</from-outcome>

<to-tree-id>/fail.jsp</to-tree-id>

</navigation-case>

</navigation-rule>

Java Server Faces

�Arayüz Bileşenleri (UI Components)�Sunucu tarafında çalışır

form.jsp

Browser

UI

Java Server Faces

� “Component tree”

� Sayfaya request geldiğindeeğer View Id mevcut değil iseyeni bir component tree oluşturulur

� View-id var ise güncellenir

View

Form

input

command

input

Java Server Faces

�“Validators” & “Converters”�Validators—Girdi kontrollerini yapar

�UIInput bileşenlerini değerlerini kontrol eder

�Bir veya daha fazla bileşen kontrolü yapabilir

�Genel durumlar için hazır “Validator” ler vardır

� Converters—Veri Tipleri dönüşüm işlemlerini yapar�Output: Object to String

�Input: String to Object

�Genel durumlar için hazır “Converter” ler vardır

Java Server Faces

Örnekler;

�Converter:

�Validator:

<h:inputText value=“#{bean.date}”><f:convertDateTime pattern=“MM/dd/yyyy”/>

</h:inputText>

<h:input_text valueRef=”#{testingBean.today}” >

<f:validator_length minimum=”6” maximum='10” />

</h:input_text>

J2EE Karikatürleri

�Java Server Faces

J2EE Karikatürleri

�Dependency Injection

J2EE Karikatürleri

�EJB

Örnek Uygulama

SORULAR

[email protected]

http://people.sabanciuniv.edu/ahmetdemirelli