Özcan acar ankara cankaya universitesi wicket webframework sunumu

64
Özcan Acar © 2009 Kurumsal Java.com

Upload: oezcan-acar

Post on 18-Dec-2014

1.313 views

Category:

Documents


5 download

DESCRIPTION

3 ocak 2009 tarihinde Ankara Çankaya üniversitesinde CETURK tarafından düzenlenen Java teknolojileri seminerine konuşmacı olarak katıldım ve Apache Wicket framework hakkında bir sunum yaptım. Sunum dosyalarını aşağıdaki linkler üzerinden edinebilirsiniz. Detayli bilgi: http://www.kurumsaljava.com/2009/01/12/ozcan-acar-wicket-sunumu/

TRANSCRIPT

Page 1: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Özcan Acar © 2009 Kurumsal Java.com

Page 2: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Web Framework Gökyüzünde

Yeni bir Yıldız!

Özcan [email protected]

http://www.ozcanacar.comhttp://www.kurumsaljava.com

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 3: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Wicket‘in Varoluş Nedeni

Özcan Acar © 2009 Kurumsal Java.com

Page 4: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Özcan Acar Hakkındapublic class OezcanAcar{

public static void main(String[] args) {

Acar oezcan = new Acar();oezcan.setBirthday("18.07.1974");oezcan.setBirthplace("Izmir");oezcan.setJob("Bilgisayar Mühendisi");

oezcan.setPassion("J2EE");}

}© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 5: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Özcan Acar Hakkında

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 6: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 7: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 8: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Sunumun İçeriğiAPI anlatmaya gelmedim! Wicket‘i anlamak için web programcılığında gerekli soyut konseptler üzerine yoğunlaşacağız.

Bir tezim var: 2 boyutlu web programcılığı yapıyoruz. Neden?

Java ile web programcılığının tarihçesi

Wicket tanıtımı

Wicket ile Web Komponentleri

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 9: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Giriş

© 2009 Kurumsal Java.com

Kimler daha önce Java teknolojilerini kullanarak web programcılığı yaptı?

Özcan Acar © 2009 Kurumsal Java.com

Page 10: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Web Programcılığı

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Web programcılıgı klasik maasaüstü programcılığından farklıdır.

Yazılan kod dinamik olarak web tarayıcısı için gerekli HTML kodunu oluşturur.

Web aplikasyonu için yazılan kodun aynı anda birden fazla kullanıcıyı desteklemesi lazım (Multithreading).

Web aplikasyonun değişik türdeki bilgisayar, işletim sistemi ve web tarayıcısını desteklemesi gerekir.

Page 11: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Web Aplikasyonu

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

HTML Sayfaları(JSP)

HTTP Request

HTTP Response

Page 12: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Java Web Aplikasyonu

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

HTML Sayfaları(JSP) Java Nesneleri

Page 13: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

3 boyutluweb programcılığıGerçek Java Komponentleri

2 boyutluweb programcılığıController, Model, View, JSTL

Tez: 2 boyutlu web yazılımı yapıyoruz! 3. boyut neresi?

Özcan Acar © 2009 Kurumsal Java.com

Komponent

Page 14: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Beklentilerimiz

Özcan Acar © 2009 Kurumsal Java.com

Web programcılığı da olsa nesneye yönelik programcılığı uygulamak istiyoruz.

Sadece Java dilinde yazılım yapmak istiyoruz. JSTL ya da EL gibi web‘e özel bir yazılım tekniğini öğrenmek zorunda kalmak istemiyoruz.

Yazılımcı olarak amacımız bakımı kolay ve her yeni müşteri gereksinimi ile kolayca genişletilebilir yazılım sistemleri geliştirmektir. Kullandığımız araçlar bunu desteklemeli.

Kodun tekrar kullanılabilmesi (reuse) önemlidir. Web programcılığında, tekrar kullanılabilen Java komponentleri oluşturmak zor bir iş haline gelmemeli.

Page 15: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Time To Change

© 2009 Kurumsal Java.com

Java ile web programcılığı hakkında bildiklerinizi unutun!

Wicket ile web programcılığına 3. boyut geliyor!

Wicket web komponentleri

Özcan Acar © 2009 Kurumsal Java.com

Page 16: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Konsept

© 2009 Kurumsal Java.com

İdeal bir web projesi mimarisi nasıl olmalı?

MVC Design Pattern

Komponent nedir?

Web komponent nedir?

Özcan Acar © 2009 Kurumsal Java.com

Page 17: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

İdeal Bir Web Proje Mimarisi

© 2009 Kurumsal Java.com

Üç Katmanlı Mimari

Presentation

JSPServlet

StrutsJSF

Wicket

Business

Interface

InterfaceImpl

Persistence

DAO

DAOImpl

Özcan Acar © 2009 Kurumsal Java.com

DB

Page 18: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

MVC Design Pattern

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

FrontController

ControllerModel

Model Model nesnesini oluşturma

İsteği yönlendirme

Gelenrequest

Gönderilenresponse

HTML çıktısıView

Page 19: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Komponent

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Komponent

Tekrar kullanılabilir kod birimi.

İç dünyasını gizler.

Tanımlanmış interface sınıflar üzerinden kullanılır. Örneğin Facade.

Jar dosyasında dağıtılabilir.

Kullanıldığı ortama göre konfigüre edilebilir.

Page 20: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Web Komponent

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Bir web aplikasyonda konfigürasyon yapılarak kullanılan modül.

Diğer komponent özelliklerine sahiptir.

Jar dosyası olarak aplikasyona dahil edilebilir.

Login Register

Web Aplikasyon

Chat Friends

Page 21: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Java İle Web ProgramcılığınTarihçesi

© 2009 Kurumsal Java.com

Servlets

JSP

JSTL

MVC Web Frameworks (Struts, Spring MVC)

User Interface Component Model Frameworks (JSF)

Özcan Acar © 2009 Kurumsal Java.com

Page 22: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Servlets

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Web programcılığı yapılabilen ilk Java teknolojisi.

Sun tarafından tanımlanmış bir standart (API). İhtiva ettiği interface‘ler Tomcat gibi bir application server tarafından implemente edilir.

Servlet web tarayıcısı üzerinden gelen kullanıcı istediğini cevaplayıp, HTML sayfası oluşturan bir Java nesnedir.

Aplikasyon serveri (Tomcat, Resin) bünyesinde çalışır. Aplikasyon server HTTP protokolü ile Servlet sınıfı arasındaki köprüdür.

ja v a x.se r v le t .ht t p .Ht t p Ser v le t s ın ıf ın ı gen işle t en her s ın ıf Ser v le t ha l ine ge l ir .

Ser v le t w eb a p l ik a sy on la r ı URL t a ba nl ıd ır ( ht t p :/ / d om a in .com / se r v le t / Som eSer v le t ) . w eb.xm l k onfigü r a sy on d osy a s ınd a ha ngi URL d en ha ngi Ser v le t s ın ıf ın ın sor u m lu o ld uğu t a n ım la n ır .

Page 23: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Servlet Multithreading

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

public class HelloWorldServlet extends HttpServlet { private int counter = 0; public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { counter ++; response.setContentType("text/html"); ServletOutputStream output = response.getOutputStream(); output.print("<h1>Sayac: " + counter +"</h1>"); }}

Page 24: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Servlet Teknolojisinin Dezavantajları

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

HTML kodu Servlet sınıfında oluşturulduğundan, Servlet sınıflarının bakımı ve geliştirilmesi zordur!

Geniş kapsamlı Servlet aplikasyonları çok kompleks bir yapıya dönüşebilir. Programcıların, aplikasyonun her bölümünü aynı seviyede anlamaları zorlaşabilir.

Her yeni müşteri gereksiniminin getirdiği değişiklikler, bakım ve geliştirme sürecini zora sokabilir.

HTML kodu programcılar tarafından geliştirilmek zorundadır. Web design yapan ekibin Java bilgisi olmadan Servlet sınıfları üzerinde modifikasyon yapmaları mümkün değildir.

Servlet aplikasyonlarında HTML kodu da üretildiği için kodun bol olduğu sınıflar oluşur.

Page 25: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

JSP – Java Server Pages

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Servletler tarafından template olarak kullanılmak üzere geliştirilmiş web teknolojisi. Bir standart.

Application server JSP sayfalarını compile esnasında Servlet sınıflarına dönüştürür.

(JSP)

Servlet

HttpServletRequest

2. Veriyi ekler

4. Veriyi okur

3. Yönlendirir

1. Request

5. Response

Page 26: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

JSP – Java Server Pages

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

<html><body><% for(int i=0; i<5; i++) { out.print(“<h1>Merhaba Dünya</h2>); }%></body></html>

Page 27: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

JSP Teknolojisinin Dezavantajları

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

JSP Servlet teknolojisi ile beraber kullanıldığında JSP ve Servlet arasında nesnesel bir ilişki yoktur. Oluşturulan HTML kodunda yer alan linkler üzerinden ihtiyaç duyulan Servlet sınıfları adreslenir. Servlet bir JSP nesne referansına erişemediği için HttpServletRequest üzerinden JSP için gerekli verileri oluşturur.

Kompleks JSP sayfalarında Java kodunun kullanılması, JSP sayfalarının bakımını güçleştirir.

JSP sayfalarnda değişiklik yapmak isteyen web design ekibinin Java biliyor olması gerekir. Web designcıların yaptıkları en ufak bir değişiklik bile web aplikasyonu çalışmaz hale getirebilir.

Page 28: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

JSP Teknolojisinin Dezavantajları

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Java kodu kullanılan JSP sayfalarının HTML editörlerinde gösterim problemi oluşmaktadır.

JSP sayfalarında Java kodunu kullanılması hata tespit ve debugging işlemlerini zorlaştırmaktadır.

Test güdümlü (Test Driven Development) JSP yazılımı bir application server (Tomcat) kullanmadan mümkün değildir (HttpUnit).

Page 29: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

JSTL – Java Standard Tag Library

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Yeni bir web komponent modelini ihtiva eder.

JSP sayfasında Java kodu yerine, tag olarak bilinen ve server tarafında bir Java sınıfında yer alan koda denk gelen birimler kullanılır. Tagler komponenttir.

Web design ekibi Java ögrenmek zorunda kalmadan JSP sayfaları oluşturabilir.

Tagler XML syntax benzeri bir notasyon ile kullanırlar.

Verilere ulaşmak için EL (Expression Language)kullanılabilir.

<c:out value="${username}"/>

Page 30: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<p><h1>Müsteri Isimleri</h1></p>

<c:forEach items="${addresses}" var="address">

<c:choose>

<c:when test="${not empty address.lastName}" >

<c:out value="${address.lastName}"/><br/>

</c:when>

<c:otherwise>

N/A<br/>

</c:otherwise>

</c:choose>

JSTL – Java Standard Tag Library

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Page 31: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

JSTL – Java Standard Tag Library

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

JSTL kullanılmış olsa bile JSP teknolojisi ile geniş kapsamlı web programları oluşturmak kolay değildir. JSP sayfalarında HTML gösterimi yanı sıra navigasyon ve verilerinvalidasyonu (validation) gibi kompleks işlemlerin yapılması gerekmektedir. Bu işlemlerin JSP sayfalarında yapılması, JSP sayfalarının bakımını ve geliştirilmesini zora sokmaktadır.Navigasyon ve validasyon gibi işlemlerin JSP sayfalarının dışında, başka bir mekanizma kullanılarak yapılması gerekmektedir. Bu ihtiyacı karşılamak amacıyla Struts, Spring MVC ve WebWork gibi web frameworkler doğmuştur.

Page 32: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

MVC Frameworks

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

FrontController

ControllerModel

Model Model nesnesini oluşturma

İsteği yönlendirme

Gelenrequest

Gönderilenresponse

HTML çıktısıView

Page 33: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

MVC Frameworks

Özcan Acar © 2009 Kurumsal Java.com

Page 34: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

User Interface Component Model Frameworks

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

JSF (Java Server Faces), Tapestry gibi web frameworkleri komponent modeline sahiptir.

HTML arayüzü oluşturmak için Java komponentleri kullanılır.

Komponentleri HTML sayfalarında kullanabilmek için JSTL, EL tarzı programlama teknikleri kullanılır.

Page 35: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

3 boyutluweb programcılığıGerçek Java Komponentleri

2 boyutluweb programcılığıController, Model, View, JSTL

Tez: İki boyutlu web yazılımı yapıyoruz! 3. boyut neresi?

Özcan Acar © 2009 Kurumsal Java.com

Komponent

Page 36: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Neden 2. boyutta kalındı?

<%@ taglib prefix= “c“ uri=..../>

public class Controller{}

JSP Sayfası Controller Sınıfı

public class Model{}

Model Sınıfı

<config>...</config>

XML Konfigürasyon

Özcan Acar © 2009 Kurumsal Java.com

Page 37: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Neden 2. boyutta kalındı?

Mevcut web frameworklerde gerçek anlamda Java komponent oluşturulması ve kullanımı mümkün değil.

Bize komponent modeli olarak satılan bir takım JSTL tag kütüphaneleri ve JSF den tanıdığımız user interface komponentleri

Tekrar kullanılanabilir web komponentleri oluşturmak mümkün değil.

Özcan Acar © 2009 Kurumsal Java.com

Page 38: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Kısaca WicketAçık Kaynaklı (Open Source) web framework

Komponent tabanlı (Component Based)

HTML Markup kodunu ve Java kodunu ayırır.

JSTL ya da EL (Expression Language) gibi bir progragramlama tekniğini gereksiz kılar. Basit Java (POJO – Plain Old Java Object) sınıfları kullanır.

Çok az konfigürasyonu gerekli kılar. XML konfigürasyon dosyası yoktur.

Java ve HTML‘i bilenler kısa zamanda Wicket‘i ögrenebilir.

Spring ile birebir entegre edilebilir.Özcan Acar © 2009 Kurumsal Java.com

Page 39: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Kısaca WicketWicketTester sınıfı ile test güdümlü yazılımı ve akseptans (acceptance – onay/kabul) testlerinin oluşturulmasını destekler.

Javascript kodu yazmadan Ajax desteği sağlar.

Özcan Acar © 2009 Kurumsal Java.com

Page 40: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Wicket Konseptleri

Application

Page

Komponentler

Modeller

Paneller

Özcan Acar © 2009 Kurumsal Java.com

Page 41: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Application

Web aplikasyonun başlangıç noktasıdır (Main Entry Point).

Giriş sayfasını (Home Page) tanımlar.

Spring ile entegrasyonun gerçekleştiği (SpringComponentInjector) yerdir.

Özcan Acar © 2009 Kurumsal Java.com

Page 42: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Application

<filter> <filter-name>wicket</servlet-name> <filter-class> org.apache.wicket.protocol.http.WicketFilter </filter-class> <init-param> <param-name>applicationClassName</param-name> <param-value> com.company.MyApplication </param-value> </init-param> <load-on-startup>1</load-on-startup></filter>

Özcan Acar © 2009 Kurumsal Java.com

web.xml konfigürasyonu

Page 43: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Wicket Konseptleri

Application

Page

Komponentler

Modeller

Paneller

Özcan Acar © 2009 Kurumsal Java.com

Page 44: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Page

Özcan Acar © 2009 Kurumsal Java.com

HomePage LoginPage RegisterPage BlogPage

Application

public abstract class HomePage extends WebPage{ public SmartWicketPage() { super(); buildGui(); }

public abstract void buildGui();}

Page 45: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Wicket Konseptleri

Application

Page

Komponentler

Modeller

Paneller

Özcan Acar © 2009 Kurumsal Java.com

Page 46: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

KomponentlerLabel

MultiLineLabel

Button

SubmitLink

TextField

CheckBox

TextArea

ListChoise

RadioChoise

Özcan Acar © 2009 Kurumsal Java.com

Image

Link

Tree

Panel

Loop

Border

Fragment

PageLink

ExternalLink

Palette

CheckGroup

DropDownChoise

RadioGroup

Select

ImageMap

Page 47: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Komponentler ve MarkupHTML sayfalarında Wicket komponentleri wicket:id ile kullanılır.

Özcan Acar © 2009 Kurumsal Java.com

<h1 wicket:id=� msg�> Komponent tarafından değiştirilir </h1>

HTML

new Label(� msg�, “Hello, World!”);

Ekran Çıktısı

<h1>Hello, World!</h1>

Java Kodu

Page 48: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Komponentler ve Markup

Özcan Acar © 2009 Kurumsal Java.com

Page ve Panel gibi komponentlerin kendi HTML dosyaları vardır.

Komponentler ve sahip oldukları HTML sayfaları aynı Java package içinde yer alır.

Page 49: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Merhaba Dünya Örneği

Özcan Acar © 2009 Kurumsal Java.com

Page 50: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Wicket Konseptleri

Application

Page

Komponentler

Modeller

Paneller

Özcan Acar © 2009 Kurumsal Java.com

Page 51: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Modeller

Özcan Acar © 2009 Kurumsal Java.com

Wicket komponentleri ile veri taşıyıcı Java sınıfları bir araya getirmek için kullanılırlar.

Label(“name“,model)

PropertyModel

Person(POJO)

+ name:String

new TextField(“name", new PropertyModel(getPerson(), “name"));

Page 52: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Wicket Konseptleri

Application

Page

Komponentler

Modeller

Paneller

Özcan Acar © 2009 Kurumsal Java.com

Page 53: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Paneller

Birden fazla wicket komponentini gruplamak için kullanılır.

Kendi HTML dosyası vardır.

Paneller kullanılarak tekrar kullanılabilir web komponentleri oluşturulabilir.

Özcan Acar © 2009 Kurumsal Java.com

Page 54: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Login Web Komponenti

Özcan Acar © 2009 Kurumsal Java.com

Page 55: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Login Web Komponenti

Özcan Acar © 2009 Kurumsal Java.com

LoginPage.javaLoginPage.html

LoginPanel.javaLoginPanel.html

LoginForm

TextField

Account

PropertyModel

Page 56: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Login Web Komponenti

Özcan Acar © 2009 Kurumsal Java.com

import org.apache.wicket.markup.html.WebPage;import smart.web.login.presentation.panel.LoginPanel;public class LoginPage extends WebPage{ public LoginPage() { super(); add(new LoginPanel("loginpanel")); }}

LoginPage.java

Page 57: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Login Web Komponenti

Özcan Acar © 2009 Kurumsal Java.com

<html><head/><body><div wicket:id="loginpanel"/></body></html>

LoginPage.html

Page 58: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Login Web Komponenti

Özcan Acar © 2009 Kurumsal Java.com

import org.apache.wicket.markup.html.panel.Panel;import smart.web.login.presentation.form.LoginForm;public class LoginPanel extends Panel{ public LoginPanel(final String arg0) { super(arg0); add(new LoginForm("loginform")); }}

LoginPanel.java

Page 59: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Login Web Komponenti

Özcan Acar © 2009 Kurumsal Java.com

<wicket:panel><form wicket:id="loginform"> <table width="100%" cellspacing="1"> <tr> <td width="100%" class="text11" colspan="3"> <div wicket:id="feedback"></div></td> </tr> <tr> <td width="13%" > <wicket:messagekey="login.email">Email</wicket:message>: </td> <td width="82%"> <span wicket:id="email.border"> <input size="20" maxlength="50„ wicket:id="email" class="inputfield" /> </span> </td> ..........</wicket:panel>

LoginPanel.html

Page 60: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Login Web Komponenti

Özcan Acar © 2009 Kurumsal Java.com

public class LoginForm extends Form{ public LoginForm(final String pId) { super(pId); add(new TextField("email", new PropertyModel(getAccount(), "email")). setRequired(true)); add(new PasswordTextField("password", new PropertyModel(getAccount(), "password")). setRequired(true)); } protected final void onSubmit() { LoginResult result = manager.login(getAccount().getEmail(), getAccount().getPassword()); // LOGIN OK if(result.getStatus() == LoginManagerStatusCodes.LOGIN_OK.getValue()) .......}

LoginForm.java

Page 61: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

© 2009 Kurumsal Java.com

Login Web Komponenti

Özcan Acar © 2009 Kurumsal Java.com

Page 62: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Web Komponent

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Bir web aplikasyonda konfigürasyon yapılarak kullanılan modül.

Diğer komponent özelliklerine sahiptir.

Jar dosyası olarak aplikasyona dahil edilebilir.

Login Register

Web Aplikasyon

Chat Friends

Page 63: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Web Komponent

© 2009 Kurumsal Java.comÖzcan Acar © 2009 Kurumsal Java.com

Login komponentini bir Jar dosyası haline getirerek, istediğimiz bir projede kullanabiliriz.

Login

<div wicket:id="loginpanel"/>

add(new LoginPanel("loginpanel"));

Java

HTML

Page 64: Özcan Acar  Ankara Cankaya Universitesi Wicket Webframework Sunumu

Özcan Acar © 2009 Kurumsal Java.com

SONİlginiz için teşekkür ederim.