1 Ağustos 2016 Pazartesi

JSF Merhaba Dünya Örneği


0-Kullanılan Teknolojiler

Eclipse IDE
Maven 3.3.9
JSF 2.2
Tomcat 8.0.33




1-Proje





2-Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
  <groupId>com.hasanburakavci</groupId>
  <artifactId>MerhabaJavaServerFaces</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
<dependencies>
        <dependency>
                <groupId>com.sun.faces</groupId>
                <artifactId>jsf-api</artifactId>
                <version>2.1.7</version>
        </dependency>
        <dependency>
                 <groupId>com.sun.faces</groupId>
                 <artifactId>jsf-impl</artifactId>
                 <version>2.1.7</version>
        </dependency>
        <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-api</artifactId>
                <version>8.0.33</version>
        </dependency>
  </dependencies>
</project>
JSF ve Tomcat Server jar dosyaları pom.xml sayesinde otomatik olarak projeye import edildi.




3-MerhabaBean.java

package com.hasanburakavci;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name="merhabaBean")
@SessionScoped
public class MerhabaBean implements Serializable{

        private static final long serialVersionUID = 1L;
 
        private String name="Merhaba Dünya";

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

}
@ManagedBean ile bu sınıfın yönetimli nesne olduğunu belirttik. name="merhabaBean" diyerek xhtml sayfalarından hangi isimle çağırılıp kullanılacağını belirttik.

@SessionScoped anotasyonu ile bu sınıfın bir oturum boyunca kullanılacağını ( yaşam süresinin oturum boyunca olması) belirttik.

name adında private erişimli nesne oluşturduk. Get ve set metodlarıyla çağırılıp kullanılmasına olanak sağladık.



4-index.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"       xmlns:ui="http://java.sun.com/jsf/facelets"       xmlns:f="http://java.sun.com/jsf/core"       xmlns:h="http://java.sun.com/jsf/html">  <h:head></h:head>  <body>  <h:outputText value="#{merhabaBean.name}" /> </body>  </html>
<h:outputText> etiketi ekrana yazı yazmak için kullanılır. value=" " ile yönetimli bean'den name nesnesini çağırdık. Bu sayede name nesnesinin içinde bulunan değer ekrana yazılmış oldu.




5- Ekran Çıktısı



index.html sayfasını tomcat server ile çalıştırdığımızda karşımıza bu ekran geliyor.


Devamını oku ...

31 Temmuz 2016 Pazar

Maven Kullanılarak Java Server Faces (JSF) Projesi Oluşturma


     Eclipse ortamında Maven projesi nasıl açılır onu göreceğiz. Hemen ardından projemize JSF ekleyeceğiz. Bunun için Eclipse'i açıyoruz. Ben Mac OS işletim sistemi kullanıyorum. Fakat diğer işletim sistemlerinde de herşey aynı.

1.Adım (Maven Projesinin oluşturulması)

Eclipse'de File -> New -> Other -> Maven -> Maven Project yolunu takip ediyoruz. Karşımıza bu ekran geliyor.





Next ile devam ediyoruz.







Create a simple project kısmına tik koyup Next diyelim.







Bu ekranda Group Id: yazan yere paketimizin ismini yazıyoruz. Ben com.hasanburakavci (sitenin adını) yazdım. Artifact Id: yazan yere ise projemizin ismini yazalım. Packaging: yazan yeri war olarak değiştirelim ve Finish deyip projemizi oluşturuyoruz.





Gördüğünüz gibi ilk JSF projemizi oluşturmuş olduk.




2.Adım ( JSF'nin eklenmesi)


Bu adımda projemize Java Server Faces ekleyeceğiz. Projenin üzerine sağ tıklayıp Properties diyoruz. 





Project Facets sekmesine tıklayınca yukarıdaki ekran karşımıza çıkıyor. JavaServer Faces yazılı olan onay kutusunu seçili hale getiriyoruz.






Apply -> OK diyerek kaydediyoruz.




3. Adım (JSF ve Tomcat kütüphanelerinin eklenmesi)

Projenin pom.xml dosyasını açıp aşağıdaki kodları ekliyelim. Bu sayede tek tek el ile jar dosyalarını indirmemize gerek kalmayacak.


<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
  <groupId>com.hasanburakavci</groupId>
  <artifactId>MerhabaJavaServerFaces</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
<dependencies>
        <dependency>
                <groupId>com.sun.faces</groupId>
                <artifactId>jsf-api</artifactId>
                <version>2.1.7</version>
        </dependency>
        <dependency>
                 <groupId>com.sun.faces</groupId>
                 <artifactId>jsf-impl</artifactId>
                 <version>2.1.7</version>
        </dependency>
        <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-api</artifactId>
                <version>8.0.33</version>
        </dependency>
  </dependencies>
</project>





Görüldüğü gibi jar dosyaları otomatik olarak eklenmiş oldu. Şimdide src -> main -> webapp dizini takip edelim. Webapp dizinine sağ tıklayıp New -> XHTML Page diyoruz.






File name: yazan yere index.html yazıp Next > diyoruz.






Blank JSF Page yazan yeri seçip Finish diyoruz. Böylelikle JSF projesi oluşturmuş olduk.


Devamını oku ...

4 Temmuz 2016 Pazartesi

Java Setter ve Getter Metodları (Eclipse)

Java programlamada kapsülleme ile değişkenlere doğrudan erişim engellenebilir. Private erişim belirleyici ile değişkenlerin diğer sınıflardan (class) direkt olarak çağırılması, ulaşılması engellenir. Sadece bulunduğu sınıf tarafından kullanılır. Bu yaklaşımın en önemli sebebi güvenliktir. Doğrudan erişim kapatıldığı için belli kurallar bütününde erişim sağlanır. Bu erişim Set ve Get metodlarıyla mümkün kılınmıştır. Her değişkenin kendine ait set ve get metodları tanımlanmalıdır.

Get metodu return ile bir değer dönmektedir. Bu sayede istediğimiz değişkenin değerine ulaşabiliriz. 

Set metodu return dönmez fakat parametre alır. Bu parametreye verdiğimiz değer ile var olan değeri değiştirebiliriz.


public class Ogrenci{


        private String ad;
        private int not;
 
        //Yapılandırıcı
        public Ogrenci() {
   
        }
        //------Setter-Getter------
        public String getAd() {
                return ad;
        }
        public void setAd(String ad) {
                this.ad = ad;
        }
        public int getNot() {
                return not;
        }
        public void setNot(int not) {
                this.not = not;
        }
      
}

ad ve not adında iki adet değişken tanımlandı. Bu değişkenlerin erişim belirleyicisi private yapıldı. Böylelikle diğer sınıflardan doğrudan erişim kapatıldı. getAd ve getNot metodlarıyla değişkenlere erişilebilir. setAd ve SetNot metodlarıyla değişkenlerin değerleri değiştirilebilir.



Eclipse'de değişkenlerin otomatik olarak set get metodlarını oluşturmak mümkün. Bunun için var olan java sınıfının içinde herhangi bir yere sağ tıklıyoruz.




Source -> Generate Getters and Setters... yolunu takip ediyoruz.





Açılan bu ekranda hangi değişkenin set ve get metodunu istiyorsak ona tik koyabiliriz. Select All diyerek tüm değişkenleri seçebiliriz.





Insertion point ile bu metodların sınıf içerisindeki konumunu belirleyebiliriz.





OK diyerek metodları tamamlamış olduk.

Devamını oku ...