wicket in 60 minutes wicket 4 newbs. even voorstellen

Post on 31-Mar-2015

223 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Wicket in 60 MinutesWicket in 60 MinutesWicket in 60 MinutesWicket in 60 Minutes

Wicket 4 NewbsWicket 4 Newbs

Even Voorstellen ...Even Voorstellen ...Even Voorstellen ...Even Voorstellen ...

AgendaAgendaAgendaAgenda

Waarom Wicket?Waarom Wicket?

Basis Ingredienten Wicket ApplicatieBasis Ingredienten Wicket Applicatie

Demo: Hello World! met Maven en WicketDemo: Hello World! met Maven en Wicket

Demo: Wicked BookstoreDemo: Wicked Bookstore

Enkele Wicket ComponentenEnkele Wicket Componenten

Waarom Wicket?Waarom Wicket?

(Hadden nog niet genoeg web frameworks?)

Jawel ...Jawel ...Jawel ...Jawel ...

Echo Cocoon Maverick

Struts Turbine WebWork

GWT Tapestry Click

Smile Japple Spring MVC

SOFIA Jato TeaServlet

JFormular Stripes Melati

Expresso JPublish ...

Maar Wicket ...Maar Wicket ...Maar Wicket ...Maar Wicket ...

Is Component OrientedIs Component Oriented

Houd HTML en Java Strikt GescheidenHoud HTML en Java Strikt Gescheiden

Heeft Geen XML configuratie nodig!Heeft Geen XML configuratie nodig!

Wicket is Component Wicket is Component OrientedOrientedWicket is Component Wicket is Component OrientedOriented

Composite PatternComposite Pattern

Wicket is Component Wicket is Component OrientedOrientedWicket is Component Wicket is Component OrientedOriented

Voorbeeld: Form ComponentsVoorbeeld: Form Components

Java en HTML GescheidenJava en HTML GescheidenJava en HTML GescheidenJava en HTML Gescheiden

HTML mark-up:HTML mark-up:

<p wicket:id="quoteOfDay">famous quote here</p>

Java code:Java code:

String quoteNeilArmstrong=

”This is one small step for a man, “ + “one giant leap for mankind.";

add(new Label("quoteOfDay", quoteNeilArmstrong));

Geen XML Configuraties Geen XML Configuraties Meer!Meer!Geen XML Configuraties Geen XML Configuraties Meer!Meer!

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" "http://jakarta.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>

<!-- ========== Form Bean Definitions ============ --> <form-beans> <form-bean name="loginFormBean" type="test.struts.LoginForm" /> (...) </form-beans>

<!-- ========== Action Mapping Definitions ======== --> <action-mappings> <action path="/login" type="test.struts.LoginAction" >

<forward name="valid" path="/jsp/MainMenu.jsp" /> <forward name="invalid" path="/jsp/LoginView.jsp" /></action>

(...)

</action-mappings>

</struts-config>

Wat gaat er in de soep?Wat gaat er in de soep?

Wicket Basis IngredientenWicket Basis Ingredienten

Wicket Basis Wicket Basis IngredientenIngredientenWicket Basis Wicket Basis IngredientenIngredienten

Wicket dependency in pom.xml Wicket dependency in pom.xml

Wicket Servlet Filter in web.xml Wicket Servlet Filter in web.xml

WebApplication class WebApplication class

WebPage class WebPage class

HTML template ( + CSS ) HTML template ( + CSS )

Dependencies in pom.xmlDependencies in pom.xml

<dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket</artifactId> <version>${wicket.version}</version></dependency>

Wicket ‘core’ library:Wicket ‘core’ library:

<dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket-spring</artifactId> <version>${wicket.version}</version></dependency>

Wicket Spring integratie library:Wicket Spring integratie library:

Servlet Filter in web.xmlServlet Filter in web.xml

<filter> <filter-name>wicket.helloworld</filter-name> <filter-class> org.apache.wicket.protocol.http.WicketFilter </filter-class> <init-param> <param-name>applicationClassName</param-name> <param-value> nl.iprofs.MyWicketApplication </param-value> </init-param></filter>

<filter-mapping> <filter-name>wicket.helloworld</filter-name> <url-pattern>/*</url-pattern></filter-mapping>

WebApplication ClassWebApplication Class

package nl.iprofs;

import org.apache.wicket.protocol.http.WebApplication;

public class WicketApplication extends WebApplication {

public MyWicketApplication() {}

public Class getHomePage() { return HomePage.class; }

}

WebPage ClassWebPage Class

package nl.iprofs;

import org.apache.wicket.PageParameters;import org.apache.wicket.markup.html.basic.Label;import org.apache.wicket.markup.html.WebPage;

public class HomePage extends WebPage {

public HomePage(final PageParameters parameters) {

String neilArmstrongQuote =

"This is one small step for a man, " + "one giant leap for mankind";

add( new Label("quoteOfDay", neilArmstrongQuote)); }

}

HTML TemplateHTML Template

<html> <head> <title>Quote of the Day</title> </head> <body> <h1>Quote of the Day</h1>

<p wicket:id="quoteOfDay">famous quote here</p>

</body></html>

DemoDemo

Hello Wicked WorldHello Wicked World

Wicket ComponentenWicket Componenten

Wicket Component Wicket Component StructuurStructuurWicket Component Wicket Component StructuurStructuur

Form

FormComponent

1..*

Button

WebMarkupContainer

+ add ( :Component ):void

CheckBox TextArea TextField

Link ComponentLink Component

HTML mark-up:HTML mark-up:

<a href="#" wicket:id="homeLink">Home</a><br />

Java code:Java code:

Link homeLink = new BookmarkablePageLink("homeLink", HomePage.class);

ListView ComponentListView Component

HTML mark-up:HTML mark-up:

<div wicket:id="categoryRow"> <a href="#" wicket:id="catLink"> <span wicket:id="catLabel">Boek A</span></a></div>

Java code:Java code:

add(new ListView("categoryRow", categorieen) {

@Override protected void populateItem(ListItem item) { Category category = (Category) item.getModelObject(); Link catLink = new BookmarkablePageLink( "catLink", HomePage.class); catLink.add(new Label("catLabel", category.getName()));

item.add(catLink); }});

DemoDemo

WickedBookstoreWickedBookstore

Vragen

... en antwoorden

top related