SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
1- JAVA SERVER FACES(JSF)


JSF (JavaServer FacesJEE uygulamalarında kullanılan Java servlet, java server pages
( JSP) , Struts, Apache Wicket gibi, JSF te web uygulamalarının arayüzünü inşa etmek için
oluşturulan, yeni nesil web uygulama çatısı,Javanın standart web frameworküdür.JEE
uygulamalarında web arayüzleri oluşturmak için Java servlet, java server pages(JSP) , Struts,
Apache Wicket gibi çok sayıda framework bulunur(Tabi web uygulamalarında çığır açan java
appletlerini de unutmamak lazım). JSF de bunlardan bir tanesidir. JSF ,JSP ve Servlet‟ların
üzerine kurulmuştur.Bu var olan teknolojilerle MVC yaklaşımını birleştirir.




                                 Şekill – 3 : Jsf Mimarisi-1
Temel olarak; uygulama mimarisi, standart kullanici arayüzü(UI) seti ve uygulama altyapısı
olmak üzere 3 katmandan oluşmaktadır.
JSF‟nin bileşen altyapısı, kullanıcı arayüzü bileşenleri oluşturmak için ortak bir yol tanımlar.
Bu mimari standart JSF I bileşenleri(hyperlink, button, secme kutulari, text alanlari gibi)
yaninda, üçüncü parti bileşenleri için de bir ortam oluşturur.
Bileşenler olay tabanlıdır, dolayısıyla JSF istemci tarafında oluşan olayların (örnegin text-
box‟in degerinin degiştirilmesi ya da butona tıklanmasi gibi) işlenmesini sağlar.
Şekill – 2 : JSF MİMARİSİ-2
Web uygulamalarinin masaüstü olanlardan farkli olarak genellikle birçok istemciye destek
vermesi gerektiğinden, JSF‟ in de kullanıcı arayüzü bileşenlerini değisik yollarla göstermek
için güçlü bir mimarisi bulunmaktadır. Kullanıcı girişinin “validate” edilmesi, nesneleri
göstermek icin nesnelerin string‟e dönüştürülmesi veya string‟den nesne oluşturulması gibi
özelliklere sahiptir. Java Server Faces ya da diğer adıyla “Faces”, otomatik olarak UI
bileşenleri ile giriş değerlerini tutan ve cevap üreten Java nesnelerini senkron halde tutabilir.
Bu nesnelere “backing beans” adı verilir. Ayrıca güçlü bir navigasyon sistemi ve çoklu dil
desteği bulunur. Her yeni sistem için gerekli temel yapıtaşlari olan bu özellikler JSF‟nin
uygulama altyapisini olusturur.JavaServer Faces tool destegi icin altyapiyi tanimlarken
ozellestirilmis tool‟larin gelistirilmesi, Java‟da oldugu gibi yazilim firmalarina birakilmistir.
Fakat Faces uygulamaları tasarım araçları olmadan da geliştirilebilmektedir.
Jsf Diğer java web teknolojilerinden Struts ile beraber kullanılabilir.Biz projemizde Struts ın
File Download ve File Upload özelliklerini kullanmaya çalıştık ama daha sonra nedenini
bilmediğimiz bir sorun nedeniyle Struts ile Jsf ibirlikte kullanma fikrinden vazgeçtik.
Struts ve Jsf birlikte kullanılabilir.Struts ın farkı UI bileşen modeli içermiyor, UI bileşen
modeli içinolay modeli içermiyor,UI bileşenleri için durum yönetimi içermiyor ve birden çok
renderer desteği içermiyor.Struts html ile biraz daha birbirine yakın ve iç içedirler.
JSF MVC mimarisini de destekler.Hatta JSF‟nin ortaya çıkmasındaki en büyük etkende
JSP‟nin MVC‟yi kendi içerisinde destekleme konusundaki sıkıntılarıdır.MVC(Model-View-
Controller) basitçe iş ve sunum mantığının birbirinden ayrılması olarak düşünülebilir. MVC ;
adını Model - View - Controller 'in baş harflerinden alan tasarım desenidir.Sunduğu katmanlı
mimari sayesinde, uygulamanın kullanıcı arayüzü ve mantık kısmını birbirinden ayırır.
Model: İş mantığı (Business Logic) bölümüdür. Tek katmandan oluşabileceği gibi, birden
fazla katmanı da içinde barındırabilir. Tek katmandan oluştuğunda genelde veritabanına kayıt
ekleme, kayıt çekme, kayıt silme vb. veritabanı işlemleri için kullanılır. Controller'den gelen
değerleri işler ve geriye döndürür. Model katmanında herhangi bir output işlemi yapılmaz.

View: Uygulamanın kullanıcıya gösterilen arayüzünün bulunduğu katmandır. Html,
Css,Javascript vb. bu katmanda bulunur. Bu bölümde minumum php kodunun yazılması
hedeflenmektedir. for, foreach, while vb. döngüler ile birlikte, dinamik değerleri ekrana
yazdırmak için output komutları sıklıkla kullanılır.
Controller:Uygulamanın karar mekanizmasıdır. Model ile View arasında köprü görevi görür.
View katmanından gelen istekleri(request) model'e gönderir ve Model
 katmanındanaldığı verileri view e aktarır.




                                  Şekill – 3 : JSF ve MVC
Jsf in ,uygulamaların altsistemlerine (Enterprise Javabeans servisleri yada veritabanı gibi)
entegre olabilir.
 JSF ek olarak daha az efor sarfederek daha güçlü web uygulamaları hazırlamak için birçok
servis sunmaktadır.Java ServerFaces‟in esas amaci web gelişimini hızlandırmaktır.Uygulama
geliştiricilerin istekler(requestler), cevaplar ve markup dili yerine bileşen, olay, “backing
bean” ve bunların ilişkileri şeklinde düşünmelerini sağlar.
Baska bir deyişle web uygulama geliştirmedeki birçok karmaşıklığı maskeleyerek, sadece
maskeleyerek, sadece uygulama geliştirmeye odaklanılmasını sağlar.JSF her şeyden önce bir
Java standardıdır.Bunun yanında sektördeki IBM, Oracle gibi önemli firmalar JSF‟i
desteklemektedir.Farklı JSF implementasyonları-bulunduğundan projenin gereklerine göre
geliştirme için seçim yapabilme özürlüğü sağlamaktadır.JSF„in component olarak
bazı eksikleri vardır. Bu eksikleride diğer (richfaces vs..) componentler kullanılarak
doldurmak mümkündür.Zaten JSF deki amaç bütün ihityaçları karşılama değil güzel bir
altyapı hazırlamaktır. O yüzden eksikler konusunda çok fazla endişelenmeyin , herşeyin bir
karşılığı vardır ve rahatça iç içe kullanarak işlemlerinizi yapabilirsiniz.
Jsf‟in çok sayıda 3.parti bileşen kütüphanesi vardır.bunlara örnek olarak Richfaces, Icefaces,
Primefaces,Trinidat ve Tomahawk gösterilebilr.Bu 3. Parti bileşenlerinin temel amacı Ajax
tabanlı zengin bileşen kütüphenesi yaratmak ve çeşitli JSF eklentileri yardımıyla uygulama
geliştirmeyi kolaylaştırmaktır.Biz projemizde bu bileşenlerden PRİMEFACES i
kullandık.Primefaces bişr türk olan Çağatay ÇİVİCİ tarafından geliştirilmiş olup kendi
klasmanında lider konumdadır.



                                     2-PRİMEFACES




PrimeFaces.Nedir?
İlk önce PrimeFaces'in ne olduğu açıklamak daha doğru olur diye düşünüyorum. PrimeFaces
JSF 2.0 için bir çok ajax bileşeni barındıran açık kaynak bir bileşen paketidir(Component
Suite).Türlü türlü işlevlere sahip çeşitlibileşenlere sahip olmasının yanısıra, standart JSF2.0
Ajax API‟sine dayanan Ajax desteği vardır.Ayrıca TouchFaces modülü ile akıllı telefonlardan
kullanılabilecek web uygulamaları kolaylıkla geliştirilebilir.İlk olarak 2009 haziran ayında
0.9.0 sürümü ile yayımlanmış olan Primefaces‟ın , şu anki son sürümü 2010 kasım ayında 2.2
RC‟ sürümüdür şimdilerde ise Primefaces‟ 3.0 deneme aşamasındadır fakat tam sürüm henüz
çıkmamıştır.Şu an en son sürüm içinde barınan bir çok kullanışlı ve estetik özellik
bulunmaktadır. Bunlar; otomatik tamamlayıcılar, dosya upload, video-müzik
oynatıcıları,menüler, takvim, galeri, input filtreleri ve daha bir çok bileşen. PrimeFaces'ı diğer
ajax bileşen paketlerinden üstün kılan özellikleri düşünecek olursak; estetik ve esnek tasarım
imkanı sağlaması, çok sayıda bileşen içermesi, mobil arayüz desteği, döküman desteğinin
diğerlerinden daha iyi olması olarak sayabiliriz.


                         JSF PRİMEFACES CONFİGURASYONU
Primefaces‟ii kullanabilmek için http://www.primefaces.org/downloads.html adresinden
PrimeFaces‟in son sürümünü indirip projemizin WebContent/WEB-INF/lib dizinine atıyoruz.
Şu anda son sürüm primefaces-3.0.jar ama biz 2.2.1 sürümü dosyasını lib dizinine
yerleştirdim. PrimeFaces‟ın JDK 5+ runtime ve JSF 1.2+ gerçekleştirimi dışında herhangi bir
bağımlılığı bulunmuyor. Yalnızca, bazı özelliklerini kullanabilmek için ek kütüphanelere
ihtiyaç duyabiliyor.
Netbeans‟teki projemizin Libraries kısmına sağ tıklayıp
  LİBRARİES->Add JAR /Folder seçeneğinden daha önce indirdiğimiz

     * primefaces-2.2.1.jar
      *jsf-api.jar
      *jsf-impl.jar
dosyalarını projemize eklersek        primeface eklentilerini rahat bir şekilde projemizde
kullanabiliriz.
Şekill –4:Prifaces 2.2.1 Ekleme




Biz projemizde PrimeFaces 2.2.1 i kullandık. PrimeFaces'ı sayfalarımızda kullanmak için "p"
isim uzayını(namespace) kullanıyoruz. Sayfamızın en üstünde bulunan isim uzaylarının
yazıldığı html tagına aşağıdaki isim uzayımızı ekleyelim.

        xmlns:p="http://primefaces.prime.com.tr/ui"




                         Şekill – 5 :HTML sayfası eklentisi


PrimeFaces‟i çalıştırmadan önce birkaç küçük ayarlama yapmamız gerekiyor. JSF 2.0‟da
göre PrimeFaces 2.x‟in ayarlama işlemlerini de halledip ilk PrimeFaces denememize
geçmeye az kaldı. İlk olarak Resource Servlet için gerekli ayarlamayı web.xml dosyamıza
aşağıdaki kod parçasını ekleyerek halledmemiz gerekiyor .
Şekill – 6 :Web.xml Dosyası ayarı
PrimeFaces‟i Servlet 3.0 ortamında kullanıyorsanız, bu ayarlamayı yapmanız gerekmiyor. Biz
Primeface 2.2.1 kullandığımız için Mojarra 2.x için bir ayarlama daha yapıyoruz. web.xml‟e
aşağıdaki girdiyi eklememiz gerekiyor




                        Şekill – 7 :Web.xml Dosyası ayarı-2
Primefaces özelliğini kullanabilmek için HTML taglarının başına p: yazmamız gerekiyor.

Kullandığımız bazı Primefaces özelliklerinden bahsedecek olursak




                            PRİMEFACES ÖRNEKLERİ

Primefaces EDİTÖR
Projede Primefaces Editör‟ü birçok yerde kullandık ben sadece ARAŞTIRMALARIM
sayfasına veri eklerken açıklma bölümü için kullandığımız Primefaces editöründen
bahsedeceğim.Editör normal bir text şeklinde açıklama girmek için yukarıda yazı sitili vs gibi
bir çok özellik ve seceneği bulunan bir Primefaces özelliğidir.Buradan alınan veriler Mysql
veritabanına kayıt edilir ve daha sonra buradan tekrar çekilerek istediğimiz html sayfasında
gösterilmesi sağlanır.




                             Şekill – 8 :Primeface Editör




Yukarıdaki kod parçasında gösterildiği gibi <p:editör diye yani “P” tagın başına yazarak
Primefaces‟i etkinleştiriyoruz ve sayfamızda kullanabiliyoruz.Primeface bize hem kolaylık
sağlıyor hemde sayfamızın daha afili durmasını sağlıyor.

Primefaces EDİTÖR‟ü kullanırken bazı problemlerle karşılaştık bunlardan bir tanesi editöre
girdiğimiz veriler veritabanına <div> / <br> gibi html taglarınıda içeriyordu ve aynı şekilde
kullanıcı sayfasında gösterirken de aynı şekilde html taglarını da gösteriyordu.
Şekill – 6 :HTML tag ” escape=false”

 Bu problemi <h:outputText />“ e escape=”false” özelliğini ekleyerek veritabanıdan çekilen
bilgilerdeki <div> vb.. tagları temizleyip kullanıcı ara yüzündeki sayfaya o şekilde basmayı
sağladık.

PRİMEFACES CALENDAR
Primafaces uı eklentilerinden bir tanesi de calendar extender‟dir yani takvim




                            Şekill – 9 :Primeface CALENDAR

Takvim klasik bir özellik ama sitede bulunsun diye projemize ekledik asp.net ve php de bu
özellikler zaten frameworkta bulunduğu için bu gibi özellikleri eklemek çok kolay .
JSF‟ te ise bunu yapmak ancak Primefaces gibi 3.parti bileşen kütüphaneleri yardımıyla kolay
bir hak alıyor. Calendar extenderinde projeye eklenmesi diğer Primefaces bileşenlerindeki
gibi önce Primefaces ın bize sağladığı kod parçasına projemize uyarlamak ve bir java class‟ı
içerisine yerleştirmek ve daha sonrada bunu xhtml sayfası içerisinden çağırmak.




Yukarıdaki şekilde görüldüğü gibi <p:calendar …. /> yazıp içeridede bazı özelliklerini
istediğimiz gibi ayarlayabileceğimiz bir eklenti.



PRİMEFACES FileUpload
JSF in özel bir file upload özelliği olmadığı için ya projeye STRUTS ekleyip struts ile yada
3.parti bileşen kütüphaneleri(Richfaces,Primefaces gibi) yardımıyla dosya(pdf,exel,text vb)
ekleyebiliriz.Biz bunu JSF in Primeface 3.parti bileşen kütüphanesiyle yaptık.
Kısaca anlatacak olursak;
 http://www.primefaces.org/showcase/ui/fileUploadAuto.jsf adresinden file upload ile alakalı kodları
inceleyip projemize uyarlarsak yani bir java class’ı içerisine bu kodları ekleyip parametrelerini
kendimiz ayarlarsak;

WEB:XML dosyasınının alt kısmına aşağıdaki kod parçasını eklersek.




                    Şekil–10 :Primefaces FileUpload XML Konfigurasyon

Daha sonra FileUpload kodlarını java class‟ının içine uygun bir şekilde yerleştiriyoruz.
DersİcerikEkle.java class‟ı mızın içine                       adında bir metod tanımladık ve
“Fileupload event” parametresiyle ve         event.getFile().getFileName(); yükleyeceğimiz
doayanın adını alıp veritabanına dosya yolunu kaydetmek için kullanıyoruz.




Burada dosya adını aldığımızdan bahsettik dosya adını almak için bu adın bir yerden
gönderilmesi gerekir.bu class‟a dosya adı Admin_DersNotu_Ekle.xhtml sayfasından
Primefaces‟in Fileupload özelliği sayesinde gönderiliyor.
Şekil–12
                    :Primefaces FileUpload XHTML Konfigurasyon
Yukarıdaki kod parçasında görüldüğü gibi

<p:fileUpload fileUploadListener=”#{dersİçerik.handleFileUpload}” koduyla Primefaces
fileUpload özelliği java class‟ına parametre gönderiyor yani yüklenecek dosya adını
gönderiyor ve dosya yükleme işlemi bu şekilde gerçekleştiriliyor.

PRİMEFACES FİLEUPLOAD
Projemize daha önce eklemiş olduğumuz dökümanları indirebilmek için FileDownload a
ihtiyacımız vardır.bunu yine STRUTS ile projemize dahil edebiliriz ama biz yine jsf 3.parti
bileşen lerinden olan PRİMEFACES‟in FileDownload özelliği ile yaptık ve projemize dahil
ettik.

Önce http://www.primefaces.org/showcase/ui/fileDownload.jsf sitesine girip FileDownload

İçin Primefaces‟in yaptığu uygulamaya göz atarsak önce xhtml kısmı ve java class‟ı içinAyrı
ayrı ne yapılması gerektiini anlatıyor.Biz buradaki kodları projemize uyarladık.
Önce KullaniciDersİcerik.xhtml sayfasına aşağıdaki gibi

<p:fileDownload value”#{derslerSecme.Mahmut(‘Odev’,3,3)”}/>

Primeface FileDownload ile dosya indirme özelliğini kullanarak Java class‟ı olan

derslerSecme.java‟ya xhtml‟den üç tane parametre gönderiyoruz.Gönderdiğimiz bu
parametreler yardımıyla veritabanından gerekli sorgulamalar yapıldıktan sonra indirmek
isteğimiz dosyaya ulaşıyoruz ve dosyayı bilgisayarımıza indiriyoruz.

Java classı içerisinde oluşturduğumuz indir() metodu önce MySQL veritabanı bağlantısı
açıyor daha sonra içerik tür parametresine veritabanında ki yollara bakıp aynı olan dosyayı
sunucudan bilgisayara indirilmesini sağlıyor.
Burada kullandığımız dizi ise dersler,sınavlar vs gibi menü seçeneklerine uygun olanların
listelenmesi sağlanıyor.

Mais conteúdo relacionado

Mais procurados

Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Univerist
 
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif Powershell
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif PowershellPowershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif Powershell
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif PowershellRamin Karimkhani
 
Osman kurt & zahide aytar
Osman kurt & zahide aytarOsman kurt & zahide aytar
Osman kurt & zahide aytarOsman Kurt
 
React.js Web Programlama
React.js Web ProgramlamaReact.js Web Programlama
React.js Web ProgramlamaCihan Özhan
 
Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010Evren Ayan
 
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
2010 Kocaeli Linux Günleri - Linux Web GeliştiriciliğiBurak Oğuz
 

Mais procurados (9)

Claroline sunusu
Claroline sunusuClaroline sunusu
Claroline sunusu
 
sunu (Asp.net -1)
sunu (Asp.net -1)sunu (Asp.net -1)
sunu (Asp.net -1)
 
Flex blaze ds
Flex blaze dsFlex blaze ds
Flex blaze ds
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1
 
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif Powershell
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif PowershellPowershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif Powershell
Powershell Nedir, Nasıl Çalışır, Temel PowerShell ve Ofansif Powershell
 
Osman kurt & zahide aytar
Osman kurt & zahide aytarOsman kurt & zahide aytar
Osman kurt & zahide aytar
 
React.js Web Programlama
React.js Web ProgramlamaReact.js Web Programlama
React.js Web Programlama
 
Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010
 
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
 

Semelhante a Primeface

ASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a GeçişASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a GeçişSinan Bozkuş
 
Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel Cüneyd Tural
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21Cihan Özhan
 
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciSinan Bozkuş
 
F5 dergisi
F5 dergisiF5 dergisi
F5 dergisifatos11
 
Java ee kursu-bagcilar
Java ee kursu-bagcilarJava ee kursu-bagcilar
Java ee kursu-bagcilarsersld60
 
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleriVisual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleriMurat Başeren
 
Java ee kursu-esenler
Java ee kursu-esenlerJava ee kursu-esenler
Java ee kursu-esenlersersld60
 
ESRI Turkey User Conf 2009
ESRI Turkey User Conf 2009ESRI Turkey User Conf 2009
ESRI Turkey User Conf 2009metalalp
 
Java ee kursu-catalca
Java ee kursu-catalcaJava ee kursu-catalca
Java ee kursu-catalcasersld60
 
Java ee kursu-cekmekoy
Java ee kursu-cekmekoyJava ee kursu-cekmekoy
Java ee kursu-cekmekoysersld60
 
Java ee kursu-pendik
Java ee kursu-pendikJava ee kursu-pendik
Java ee kursu-pendiksersld60
 
Java ee kursu-esenyurt
Java ee kursu-esenyurtJava ee kursu-esenyurt
Java ee kursu-esenyurtsersld60
 
Java ee kursu-atasehir
Java ee kursu-atasehirJava ee kursu-atasehir
Java ee kursu-atasehirsersld60
 
Java ee kursu-maltepe
Java ee kursu-maltepeJava ee kursu-maltepe
Java ee kursu-maltepesersld60
 
Java ee kursu-gungoren
Java ee kursu-gungorenJava ee kursu-gungoren
Java ee kursu-gungorensersld60
 

Semelhante a Primeface (20)

ASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a GeçişASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a Geçiş
 
Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel Yeni başlayanlar için Laravel
Yeni başlayanlar için Laravel
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
 
Java EE Struts
Java EE StrutsJava EE Struts
Java EE Struts
 
Spring boot
Spring bootSpring boot
Spring boot
 
F5 dergisi
F5 dergisiF5 dergisi
F5 dergisi
 
Php veritabani
Php veritabaniPhp veritabani
Php veritabani
 
Java ee kursu-bagcilar
Java ee kursu-bagcilarJava ee kursu-bagcilar
Java ee kursu-bagcilar
 
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleriVisual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
 
Java ee kursu-esenler
Java ee kursu-esenlerJava ee kursu-esenler
Java ee kursu-esenler
 
ESRI Turkey User Conf 2009
ESRI Turkey User Conf 2009ESRI Turkey User Conf 2009
ESRI Turkey User Conf 2009
 
Java ee kursu-catalca
Java ee kursu-catalcaJava ee kursu-catalca
Java ee kursu-catalca
 
Java ee kursu-cekmekoy
Java ee kursu-cekmekoyJava ee kursu-cekmekoy
Java ee kursu-cekmekoy
 
Oracle Weblogic Server
Oracle Weblogic ServerOracle Weblogic Server
Oracle Weblogic Server
 
Java ee kursu-pendik
Java ee kursu-pendikJava ee kursu-pendik
Java ee kursu-pendik
 
Java ee kursu-esenyurt
Java ee kursu-esenyurtJava ee kursu-esenyurt
Java ee kursu-esenyurt
 
Java ee kursu-atasehir
Java ee kursu-atasehirJava ee kursu-atasehir
Java ee kursu-atasehir
 
Java ee kursu-maltepe
Java ee kursu-maltepeJava ee kursu-maltepe
Java ee kursu-maltepe
 
Java ee kursu-gungoren
Java ee kursu-gungorenJava ee kursu-gungoren
Java ee kursu-gungoren
 

Primeface

  • 1. 1- JAVA SERVER FACES(JSF) JSF (JavaServer FacesJEE uygulamalarında kullanılan Java servlet, java server pages ( JSP) , Struts, Apache Wicket gibi, JSF te web uygulamalarının arayüzünü inşa etmek için oluşturulan, yeni nesil web uygulama çatısı,Javanın standart web frameworküdür.JEE uygulamalarında web arayüzleri oluşturmak için Java servlet, java server pages(JSP) , Struts, Apache Wicket gibi çok sayıda framework bulunur(Tabi web uygulamalarında çığır açan java appletlerini de unutmamak lazım). JSF de bunlardan bir tanesidir. JSF ,JSP ve Servlet‟ların üzerine kurulmuştur.Bu var olan teknolojilerle MVC yaklaşımını birleştirir. Şekill – 3 : Jsf Mimarisi-1 Temel olarak; uygulama mimarisi, standart kullanici arayüzü(UI) seti ve uygulama altyapısı olmak üzere 3 katmandan oluşmaktadır. JSF‟nin bileşen altyapısı, kullanıcı arayüzü bileşenleri oluşturmak için ortak bir yol tanımlar. Bu mimari standart JSF I bileşenleri(hyperlink, button, secme kutulari, text alanlari gibi) yaninda, üçüncü parti bileşenleri için de bir ortam oluşturur. Bileşenler olay tabanlıdır, dolayısıyla JSF istemci tarafında oluşan olayların (örnegin text- box‟in degerinin degiştirilmesi ya da butona tıklanmasi gibi) işlenmesini sağlar.
  • 2. Şekill – 2 : JSF MİMARİSİ-2 Web uygulamalarinin masaüstü olanlardan farkli olarak genellikle birçok istemciye destek vermesi gerektiğinden, JSF‟ in de kullanıcı arayüzü bileşenlerini değisik yollarla göstermek için güçlü bir mimarisi bulunmaktadır. Kullanıcı girişinin “validate” edilmesi, nesneleri göstermek icin nesnelerin string‟e dönüştürülmesi veya string‟den nesne oluşturulması gibi özelliklere sahiptir. Java Server Faces ya da diğer adıyla “Faces”, otomatik olarak UI bileşenleri ile giriş değerlerini tutan ve cevap üreten Java nesnelerini senkron halde tutabilir. Bu nesnelere “backing beans” adı verilir. Ayrıca güçlü bir navigasyon sistemi ve çoklu dil desteği bulunur. Her yeni sistem için gerekli temel yapıtaşlari olan bu özellikler JSF‟nin uygulama altyapisini olusturur.JavaServer Faces tool destegi icin altyapiyi tanimlarken ozellestirilmis tool‟larin gelistirilmesi, Java‟da oldugu gibi yazilim firmalarina birakilmistir. Fakat Faces uygulamaları tasarım araçları olmadan da geliştirilebilmektedir. Jsf Diğer java web teknolojilerinden Struts ile beraber kullanılabilir.Biz projemizde Struts ın File Download ve File Upload özelliklerini kullanmaya çalıştık ama daha sonra nedenini bilmediğimiz bir sorun nedeniyle Struts ile Jsf ibirlikte kullanma fikrinden vazgeçtik. Struts ve Jsf birlikte kullanılabilir.Struts ın farkı UI bileşen modeli içermiyor, UI bileşen modeli içinolay modeli içermiyor,UI bileşenleri için durum yönetimi içermiyor ve birden çok renderer desteği içermiyor.Struts html ile biraz daha birbirine yakın ve iç içedirler. JSF MVC mimarisini de destekler.Hatta JSF‟nin ortaya çıkmasındaki en büyük etkende JSP‟nin MVC‟yi kendi içerisinde destekleme konusundaki sıkıntılarıdır.MVC(Model-View- Controller) basitçe iş ve sunum mantığının birbirinden ayrılması olarak düşünülebilir. MVC ; adını Model - View - Controller 'in baş harflerinden alan tasarım desenidir.Sunduğu katmanlı mimari sayesinde, uygulamanın kullanıcı arayüzü ve mantık kısmını birbirinden ayırır.
  • 3. Model: İş mantığı (Business Logic) bölümüdür. Tek katmandan oluşabileceği gibi, birden fazla katmanı da içinde barındırabilir. Tek katmandan oluştuğunda genelde veritabanına kayıt ekleme, kayıt çekme, kayıt silme vb. veritabanı işlemleri için kullanılır. Controller'den gelen değerleri işler ve geriye döndürür. Model katmanında herhangi bir output işlemi yapılmaz. View: Uygulamanın kullanıcıya gösterilen arayüzünün bulunduğu katmandır. Html, Css,Javascript vb. bu katmanda bulunur. Bu bölümde minumum php kodunun yazılması hedeflenmektedir. for, foreach, while vb. döngüler ile birlikte, dinamik değerleri ekrana yazdırmak için output komutları sıklıkla kullanılır. Controller:Uygulamanın karar mekanizmasıdır. Model ile View arasında köprü görevi görür. View katmanından gelen istekleri(request) model'e gönderir ve Model katmanındanaldığı verileri view e aktarır. Şekill – 3 : JSF ve MVC Jsf in ,uygulamaların altsistemlerine (Enterprise Javabeans servisleri yada veritabanı gibi) entegre olabilir. JSF ek olarak daha az efor sarfederek daha güçlü web uygulamaları hazırlamak için birçok servis sunmaktadır.Java ServerFaces‟in esas amaci web gelişimini hızlandırmaktır.Uygulama geliştiricilerin istekler(requestler), cevaplar ve markup dili yerine bileşen, olay, “backing bean” ve bunların ilişkileri şeklinde düşünmelerini sağlar. Baska bir deyişle web uygulama geliştirmedeki birçok karmaşıklığı maskeleyerek, sadece maskeleyerek, sadece uygulama geliştirmeye odaklanılmasını sağlar.JSF her şeyden önce bir Java standardıdır.Bunun yanında sektördeki IBM, Oracle gibi önemli firmalar JSF‟i desteklemektedir.Farklı JSF implementasyonları-bulunduğundan projenin gereklerine göre geliştirme için seçim yapabilme özürlüğü sağlamaktadır.JSF„in component olarak bazı eksikleri vardır. Bu eksikleride diğer (richfaces vs..) componentler kullanılarak doldurmak mümkündür.Zaten JSF deki amaç bütün ihityaçları karşılama değil güzel bir altyapı hazırlamaktır. O yüzden eksikler konusunda çok fazla endişelenmeyin , herşeyin bir karşılığı vardır ve rahatça iç içe kullanarak işlemlerinizi yapabilirsiniz. Jsf‟in çok sayıda 3.parti bileşen kütüphanesi vardır.bunlara örnek olarak Richfaces, Icefaces, Primefaces,Trinidat ve Tomahawk gösterilebilr.Bu 3. Parti bileşenlerinin temel amacı Ajax
  • 4. tabanlı zengin bileşen kütüphenesi yaratmak ve çeşitli JSF eklentileri yardımıyla uygulama geliştirmeyi kolaylaştırmaktır.Biz projemizde bu bileşenlerden PRİMEFACES i kullandık.Primefaces bişr türk olan Çağatay ÇİVİCİ tarafından geliştirilmiş olup kendi klasmanında lider konumdadır. 2-PRİMEFACES PrimeFaces.Nedir? İlk önce PrimeFaces'in ne olduğu açıklamak daha doğru olur diye düşünüyorum. PrimeFaces JSF 2.0 için bir çok ajax bileşeni barındıran açık kaynak bir bileşen paketidir(Component Suite).Türlü türlü işlevlere sahip çeşitlibileşenlere sahip olmasının yanısıra, standart JSF2.0 Ajax API‟sine dayanan Ajax desteği vardır.Ayrıca TouchFaces modülü ile akıllı telefonlardan kullanılabilecek web uygulamaları kolaylıkla geliştirilebilir.İlk olarak 2009 haziran ayında 0.9.0 sürümü ile yayımlanmış olan Primefaces‟ın , şu anki son sürümü 2010 kasım ayında 2.2 RC‟ sürümüdür şimdilerde ise Primefaces‟ 3.0 deneme aşamasındadır fakat tam sürüm henüz çıkmamıştır.Şu an en son sürüm içinde barınan bir çok kullanışlı ve estetik özellik bulunmaktadır. Bunlar; otomatik tamamlayıcılar, dosya upload, video-müzik oynatıcıları,menüler, takvim, galeri, input filtreleri ve daha bir çok bileşen. PrimeFaces'ı diğer ajax bileşen paketlerinden üstün kılan özellikleri düşünecek olursak; estetik ve esnek tasarım imkanı sağlaması, çok sayıda bileşen içermesi, mobil arayüz desteği, döküman desteğinin diğerlerinden daha iyi olması olarak sayabiliriz. JSF PRİMEFACES CONFİGURASYONU Primefaces‟ii kullanabilmek için http://www.primefaces.org/downloads.html adresinden PrimeFaces‟in son sürümünü indirip projemizin WebContent/WEB-INF/lib dizinine atıyoruz. Şu anda son sürüm primefaces-3.0.jar ama biz 2.2.1 sürümü dosyasını lib dizinine yerleştirdim. PrimeFaces‟ın JDK 5+ runtime ve JSF 1.2+ gerçekleştirimi dışında herhangi bir bağımlılığı bulunmuyor. Yalnızca, bazı özelliklerini kullanabilmek için ek kütüphanelere ihtiyaç duyabiliyor. Netbeans‟teki projemizin Libraries kısmına sağ tıklayıp LİBRARİES->Add JAR /Folder seçeneğinden daha önce indirdiğimiz * primefaces-2.2.1.jar *jsf-api.jar *jsf-impl.jar dosyalarını projemize eklersek primeface eklentilerini rahat bir şekilde projemizde kullanabiliriz.
  • 5. Şekill –4:Prifaces 2.2.1 Ekleme Biz projemizde PrimeFaces 2.2.1 i kullandık. PrimeFaces'ı sayfalarımızda kullanmak için "p" isim uzayını(namespace) kullanıyoruz. Sayfamızın en üstünde bulunan isim uzaylarının yazıldığı html tagına aşağıdaki isim uzayımızı ekleyelim. xmlns:p="http://primefaces.prime.com.tr/ui" Şekill – 5 :HTML sayfası eklentisi PrimeFaces‟i çalıştırmadan önce birkaç küçük ayarlama yapmamız gerekiyor. JSF 2.0‟da göre PrimeFaces 2.x‟in ayarlama işlemlerini de halledip ilk PrimeFaces denememize geçmeye az kaldı. İlk olarak Resource Servlet için gerekli ayarlamayı web.xml dosyamıza aşağıdaki kod parçasını ekleyerek halledmemiz gerekiyor .
  • 6. Şekill – 6 :Web.xml Dosyası ayarı PrimeFaces‟i Servlet 3.0 ortamında kullanıyorsanız, bu ayarlamayı yapmanız gerekmiyor. Biz Primeface 2.2.1 kullandığımız için Mojarra 2.x için bir ayarlama daha yapıyoruz. web.xml‟e aşağıdaki girdiyi eklememiz gerekiyor Şekill – 7 :Web.xml Dosyası ayarı-2 Primefaces özelliğini kullanabilmek için HTML taglarının başına p: yazmamız gerekiyor. Kullandığımız bazı Primefaces özelliklerinden bahsedecek olursak PRİMEFACES ÖRNEKLERİ Primefaces EDİTÖR Projede Primefaces Editör‟ü birçok yerde kullandık ben sadece ARAŞTIRMALARIM sayfasına veri eklerken açıklma bölümü için kullandığımız Primefaces editöründen bahsedeceğim.Editör normal bir text şeklinde açıklama girmek için yukarıda yazı sitili vs gibi bir çok özellik ve seceneği bulunan bir Primefaces özelliğidir.Buradan alınan veriler Mysql
  • 7. veritabanına kayıt edilir ve daha sonra buradan tekrar çekilerek istediğimiz html sayfasında gösterilmesi sağlanır. Şekill – 8 :Primeface Editör Yukarıdaki kod parçasında gösterildiği gibi <p:editör diye yani “P” tagın başına yazarak Primefaces‟i etkinleştiriyoruz ve sayfamızda kullanabiliyoruz.Primeface bize hem kolaylık sağlıyor hemde sayfamızın daha afili durmasını sağlıyor. Primefaces EDİTÖR‟ü kullanırken bazı problemlerle karşılaştık bunlardan bir tanesi editöre girdiğimiz veriler veritabanına <div> / <br> gibi html taglarınıda içeriyordu ve aynı şekilde kullanıcı sayfasında gösterirken de aynı şekilde html taglarını da gösteriyordu.
  • 8. Şekill – 6 :HTML tag ” escape=false” Bu problemi <h:outputText />“ e escape=”false” özelliğini ekleyerek veritabanıdan çekilen bilgilerdeki <div> vb.. tagları temizleyip kullanıcı ara yüzündeki sayfaya o şekilde basmayı sağladık. PRİMEFACES CALENDAR Primafaces uı eklentilerinden bir tanesi de calendar extender‟dir yani takvim Şekill – 9 :Primeface CALENDAR Takvim klasik bir özellik ama sitede bulunsun diye projemize ekledik asp.net ve php de bu özellikler zaten frameworkta bulunduğu için bu gibi özellikleri eklemek çok kolay . JSF‟ te ise bunu yapmak ancak Primefaces gibi 3.parti bileşen kütüphaneleri yardımıyla kolay bir hak alıyor. Calendar extenderinde projeye eklenmesi diğer Primefaces bileşenlerindeki gibi önce Primefaces ın bize sağladığı kod parçasına projemize uyarlamak ve bir java class‟ı içerisine yerleştirmek ve daha sonrada bunu xhtml sayfası içerisinden çağırmak. Yukarıdaki şekilde görüldüğü gibi <p:calendar …. /> yazıp içeridede bazı özelliklerini istediğimiz gibi ayarlayabileceğimiz bir eklenti. PRİMEFACES FileUpload
  • 9. JSF in özel bir file upload özelliği olmadığı için ya projeye STRUTS ekleyip struts ile yada 3.parti bileşen kütüphaneleri(Richfaces,Primefaces gibi) yardımıyla dosya(pdf,exel,text vb) ekleyebiliriz.Biz bunu JSF in Primeface 3.parti bileşen kütüphanesiyle yaptık. Kısaca anlatacak olursak; http://www.primefaces.org/showcase/ui/fileUploadAuto.jsf adresinden file upload ile alakalı kodları inceleyip projemize uyarlarsak yani bir java class’ı içerisine bu kodları ekleyip parametrelerini kendimiz ayarlarsak; WEB:XML dosyasınının alt kısmına aşağıdaki kod parçasını eklersek. Şekil–10 :Primefaces FileUpload XML Konfigurasyon Daha sonra FileUpload kodlarını java class‟ının içine uygun bir şekilde yerleştiriyoruz. DersİcerikEkle.java class‟ı mızın içine adında bir metod tanımladık ve “Fileupload event” parametresiyle ve event.getFile().getFileName(); yükleyeceğimiz doayanın adını alıp veritabanına dosya yolunu kaydetmek için kullanıyoruz. Burada dosya adını aldığımızdan bahsettik dosya adını almak için bu adın bir yerden gönderilmesi gerekir.bu class‟a dosya adı Admin_DersNotu_Ekle.xhtml sayfasından Primefaces‟in Fileupload özelliği sayesinde gönderiliyor.
  • 10. Şekil–12 :Primefaces FileUpload XHTML Konfigurasyon Yukarıdaki kod parçasında görüldüğü gibi <p:fileUpload fileUploadListener=”#{dersİçerik.handleFileUpload}” koduyla Primefaces fileUpload özelliği java class‟ına parametre gönderiyor yani yüklenecek dosya adını gönderiyor ve dosya yükleme işlemi bu şekilde gerçekleştiriliyor. PRİMEFACES FİLEUPLOAD Projemize daha önce eklemiş olduğumuz dökümanları indirebilmek için FileDownload a ihtiyacımız vardır.bunu yine STRUTS ile projemize dahil edebiliriz ama biz yine jsf 3.parti bileşen lerinden olan PRİMEFACES‟in FileDownload özelliği ile yaptık ve projemize dahil ettik. Önce http://www.primefaces.org/showcase/ui/fileDownload.jsf sitesine girip FileDownload İçin Primefaces‟in yaptığu uygulamaya göz atarsak önce xhtml kısmı ve java class‟ı içinAyrı ayrı ne yapılması gerektiini anlatıyor.Biz buradaki kodları projemize uyarladık.
  • 11. Önce KullaniciDersİcerik.xhtml sayfasına aşağıdaki gibi <p:fileDownload value”#{derslerSecme.Mahmut(‘Odev’,3,3)”}/> Primeface FileDownload ile dosya indirme özelliğini kullanarak Java class‟ı olan derslerSecme.java‟ya xhtml‟den üç tane parametre gönderiyoruz.Gönderdiğimiz bu parametreler yardımıyla veritabanından gerekli sorgulamalar yapıldıktan sonra indirmek isteğimiz dosyaya ulaşıyoruz ve dosyayı bilgisayarımıza indiriyoruz. Java classı içerisinde oluşturduğumuz indir() metodu önce MySQL veritabanı bağlantısı açıyor daha sonra içerik tür parametresine veritabanında ki yollara bakıp aynı olan dosyayı sunucudan bilgisayara indirilmesini sağlıyor.
  • 12. Burada kullandığımız dizi ise dersler,sınavlar vs gibi menü seçeneklerine uygun olanların listelenmesi sağlanıyor.