Widgets |
Si bien dependen de lo que HTML ofrece, del lado del servidor se puede trabajar con componentes visuales que rendericen tablas paginadas, combos anidados, etc. |
Layout |
Al igual que en Web, el layout no está reificado en objetos del lado del servidor sino que se define en el html (y opcionalmente en el css). |
Binding |
Se mapea cada componente con su modelo correspondiente (estático o dinámico). El CompoundPropertyModel trabaja por convención y permite bajar la cantidad de líneas de configuración. |
Manejo de estado |
La página tiene estado como cualquier objeto que pertenece al ambiente Java. |
Navegación |
Se pueden generar nuevas instancias de una página o recibir una página como parámetro. Al abrir nuevas sesiones desde el browser se generan nuevas instancias de página automáticamente. La navegación es a nivel aplicación y no a nivel hipervínculo de documento. |
Pasaje de información entre páginas |
Puedo definir constructores para las páginas, pasando como parámetro toda la información que necesite (incluyendo la página padre). |
Manejo de eventos |
Los botones deben definirse como submit y no como button para que pueda funcionar el binding de atributos, por las restricciones de la tecnología web: sólo con submit los parámetros viajan al servidor. Los buttons como los links definen sus listeners, el mapeo es sencillo: no hay que escribir tres servlets distintos para comprar, reservar o dar de baja la reserva, ni escribir un servlet que en el doGet/doPost tenga un switch gigante. |