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