In questo esempio creeremo una pagina con un link che se premuto incrementerà di 1 il valore nella label di fianco. Come al solito dovremo modificare il web.xml per definire il gestore dell'applicazione (vedi su HelloWorld) e definire la classe estensione di WebApplication:
<servlet> <servlet-name>AjaxLinkCounterApplication</servlet-name> <servlet-class>wicket.protocol.http.WicketServlet</servlet-class> <init-param> <param-name>applicationClassName</param-name> <param-value>it.denzosoft.web.wicket.sample3.LinkCounterApplication</param-value> </init-param> <init-param> <param-name>configuration</param-name> <param-value>development</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AjaxLinkCounterApplication</servlet-name> <url-pattern>/ajaxlinkcounter/*</url-pattern> </servlet-mapping> package it.denzosoft.web.wicket.sample3; import wicket.Application; import wicket.protocol.http.WebApplication; public class LinkCounterApplication extends WebApplication { public LinkCounterApplication() { } public Class getHomePage() { return LinkCounter.class; } }Adesso definiamo il template della pagina (come al solito banalissimo HTML):
<html> <body> <a href="#" wicket:id="link">This link</a> has been clicked > <span wicket:id="label">123</span> times. > </body> </html>Infine definiamo la classe di model:
package it.denzosoft.web.wicket.sample3; import wicket.ajax.AjaxRequestTarget; import wicket.ajax.markup.html.AjaxFallbackLink; import wicket.markup.html.WebPage; import wicket.markup.html.basic.Label; import wicket.model.PropertyModel; public class LinkCounter extends WebPage { private int counter; private Label label; public LinkCounter() { add(new AjaxFallbackLink("link") { @Override public void onClick(AjaxRequestTarget target) { counter++; if(target != null) { target.addComponent(label); } } }); label = new Label("label", new PropertyModel(this, "counter")); label.setOutputMarkupId(true); add(label); } public int getCounter() { return counter; } }A questo punto basterà deployare tramite NetBeans e chiamare l'opportuna url. Complimenti avete realizzato una applicazione Ajax con le seguenti caratteristiche:
- non avete usato mai javascript
- avete imparato che wicket ha componenti nativi che supportano Ajax
- avete imparato che wicket è lo strumento ideale per lavorare con Ajax in quanto nasconde la complessità all'interno dei suoi componenti