Wicket in 60 Minutes Wicket 4 Newbs. Even Voorstellen...
-
Upload
damaris-brines -
Category
Documents
-
view
222 -
download
1
Transcript of Wicket in 60 Minutes Wicket 4 Newbs. Even Voorstellen...
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