Questa è una buona notizia per i programmatori java 🙂
Da qualche tempo è nato un ambizioso progetto: jQuery4j. Il nome dice già molto da solo: jQuery4j, ossia jQuery per java.
Come si può intuire quindi, il progetto ha come scopo quello di consentire agli sviluppatori java di creare le proprie funzioni jQuery lato server, con creazione dinamica degli script lato client per l’interazione con i widgets jQuery! Non male!
Il progetto usa ZK per velocizzare la creazione dell’interfaccia grafica basata su jQuery4j. ZK sembra essere il migliore gestore disponibile di Ajax + Mobile, progettato per massimizzare l’efficienza operativa dell’impresa e ridurre al minimo i tempi di sviluppo e i costi.
ZK realizza i propri widget tramite jQuery, risulta pertanto facile integrarlo con altri plugin jQuery. Ha un parco di oltre 120 widgets pronti all’uso (calendario, tab, popup, ecc)! Spettacolo! Insomma RIA rapido e ottimizzato! A mio parere, però, c’è una pecca: ZK per creare i propri widget in modo rapido, usa un proprio linguaggio di programmazione, ZUML (Zk User interface Markup Language); per fortuna è basato su XML, ma resta il fatto che bisogna scrivere il codice secondo i suoi dettà mi, ossia legarsi a tale piattaforma… questo non va bene. Comunque sia, i vantaggi in termini di tempo e di risultati sono davvero straordinari!
Tornando a jQuery4j, vediamo ora di capire come possiamo usare tutta questa struttura per scrivere il codice, lato server, che si trasformerà poi in un calendario interattivo lato client.
Per fare questo dobbiamo usare quella che i progettisti di jQuery4j chiamano richlet: a richlet is a small Java program that creates all necessary components in response to user’s request. You can compose the UI by purely java, without html, ZUML. The programming logic is much like swing.
Ecco qui di seguito un richlet che realizza il nostro calendario:
package org.zkoss.jquerydemo;
import org.zkoss.jquery4j.jqueryui.datepicker.Datepicker;
import org.zkoss.zk.ui.GenericRichlet;
import org.zkoss.zk.ui.Page;
public class DatepickerRichlet extends GenericRichlet {
public void service(Page page) {
Datepicker comp = new Datepicker();
comp.setChangeMonth(true);
comp.setPage(page);
}
}
Bisogna ovviamente settare correttemente il proprio web.xml e zk.xml affinché queste richlet funzioni correttamente, ma per i dettagli vi rimando ai siti di riferimento sopra linkati.