EN · DE · RU · FR · ES

#2773: AjaxFormSubmitCallback.java

projectforge-wicket/src/main/java/de/micromata/wicket/ajax/AjaxFormSubmitCallback.java Interfaz Java (Micromata Wicket Ajax Form) · projectforge-wicket/src/main/java/de/micromata/wicket/ajax/AjaxFormSubmitCallback.java 39 líneas · 7 código · 28 comentarios · 4 en blanco
Una especialización de AjaxCallback para escenarios de envío de formularios en Wicket. Extiende el contrato básico de callback con un método onError(AjaxRequestTarget, Form<?>) que se activa cuando falla la validación del formulario. Esta interfaz separa la ruta de éxito (método callback heredado) de la ruta de error (nuevo método onError), siguiendo el patrón de método de plantilla a nivel de interfaz. Las implementaciones reciben tanto el objetivo Ajax (para actualizar mensajes de error en el DOM) como la instancia del formulario (para inspeccionar errores de validación).

Arquitectura

Patrón de callback en dos fases

La separación del manejo de éxito y error a nivel de interfaz es deliberada. Los formularios de Wicket operan en un ciclo de validación de dos fases: primero el formulario valida, luego se ejecuta el manejador de éxito o de error. Al codificar ambos resultados en el contrato de la interfaz, el código llamante en los comportamientos Ajax personalizados de Micromata puede invocar incondicionalmente el método apropiado según el estado de validación del formulario, sin necesidad de reflexión ni comprobaciones instanceof.

Requisito de serialización

Al igual que su interfaz padre AjaxCallback, esta interfaz extiende Serializable. En la arquitectura de almacenamiento de páginas de Wicket (que puede serializar páginas a disco o a una base de datos entre solicitudes), las implementaciones de callback deben sobrevivir a la serialización. Esta es una restricción común de Wicket: cualquier objeto adjunto a un árbol de componentes debe implementar Serializable.

Historial de Git

CommitQué cambió
868d6abb7 hasta ceb63e8a1Seis actualizaciones anuales del encabezado de derechos de autor (2001-2021 → 2001-2026), que abarcan toda la historia del archivo. La interfaz en sí nunca ha sido modificada más allá de su creación inicial — el contrato de callback de envío de formularios ha demostrado ser suficiente para todos los escenarios de manejo de formularios en la aplicación.