Tutorial de portillo

Wicket es un marco basado en componentes, lo que lo pone en marcado contraste con algunas de las soluciones anteriores para la tarea a veces monótona de la programación web. Al igual que otros marcos, Wicket se basa en la API de servlet de Sun.

Sin embargo, a diferencia de los marcos como Struts o Spring MVC, el desarrollador que usa Wicket está mayormente eliminado de la naturaleza de solicitud/respuesta que es inherente a la web y los Servlets. En lugar de crear controladores que deban atender a muchos usuarios y subprocesos simultáneamente, recibir solicitudes, devolver respuestas y nunca almacenar ningún estado, el desarrollador de Wicket piensa en términos de componentes con estado. En lugar de crear un controlador o una clase de acción, él o ella crea una página, coloca componentes en ella y define cómo reacciona cada componente a la entrada del usuario.

Wicket usa XHTML simple para las plantillas. Cada componente está vinculado a un elemento con nombre en el XHTML y se vuelve responsable de representar ese elemento en la salida final. La página es simplemente el componente contenedor de nivel superior y se empareja con exactamente una plantilla XHTML.

Cada componente está respaldado por su propio modelo, que representa el estado del componente. El marco no tiene conocimiento de cómo los componentes interactúan con sus modelos, que se tratan como objetos opacos serializados y persistentes automáticamente entre solicitudes. Sin embargo, los modelos más complejos pueden hacerse desmontables y proporcionar ganchos para organizar su propio almacenamiento y restauración al principio y al final de cada ciclo de solicitud.

En Wicket, todo el estado del lado del servidor se administra automáticamente. Nunca debe usar directamente un objeto HttpSession o un envoltorio similar para almacenar el estado. En cambio, el estado está asociado con los componentes. Cada componente de página del lado del servidor contiene una jerarquía anidada de componentes con estado, donde el modelo de cada componente es, al final, un POJO (Plain Old Java Object).