stringtranslate.com

ventanilla apache

Apache Wicket , comúnmente conocido como Wicket , es un marco de aplicación web basado en componentes para el lenguaje de programación Java conceptualmente similar a JavaServer Faces y Tapestry . Fue escrito originalmente por Jonathan Locke en abril de 2004. La versión 1.0 se lanzó en junio de 2005. Se convirtió en un proyecto de alto nivel de Apache en junio de 2007. [2]

Razón fundamental

Los marcos tradicionales de modelo-vista-controlador (MVC) funcionan en términos de solicitudes completas y páginas completas. En cada ciclo de solicitud, la solicitud entrante se asigna a un método en un objeto controlador , que luego genera la respuesta saliente en su totalidad, generalmente extrayendo datos de un modelo para completar una vista escrita en un marcado de plantilla especializado . Esto mantiene el flujo de control de la aplicación simple y claro, pero puede dificultar la reutilización del código en el controlador.

Por el contrario, Wicket sigue estrechamente el modelo de marcos GUI con estado como Swing . Las aplicaciones Wicket son árboles de componentes , que utilizan delegados de escucha para reaccionar a las solicitudes HTTP contra enlaces y formularios de la misma manera que los componentes Swing reaccionan a los eventos de pulsación de teclas y del mouse. Wicket se clasifica como un marco basado en componentes.

Diseño

Wicket utiliza XHTML simple para las plantillas (lo que impone una separación clara entre la presentación y la lógica empresarial y permite editar las plantillas con herramientas de diseño WYSIWYG convencionales [3] ). Cada componente está vinculado a un elemento con nombre en 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 está emparejada exactamente con una plantilla XHTML. Usando una etiqueta especial, un grupo de componentes individuales se puede abstraer en un solo componente llamado panel , que luego se puede reutilizar completo en esa página, en otras páginas o incluso en otros paneles.

Cada componente está respaldado por su propio modelo, que representa el estado del componente. El marco no tiene conocimiento de cómo interactúan los componentes con sus modelos, que se tratan como objetos opacos serializados automáticamente y persistidos 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. Wicket no exige ninguna capa ORM o persistencia de objetos en particular , por lo que las aplicaciones a menudo usan alguna combinación de objetos Hibernate [ cita necesaria ] , EJB o POJO como modelos.

En Wicket, todo el estado del lado del servidor se gestiona automáticamente. Nunca debes usar directamente un objeto HttpSession o un contenedor similar para almacenar el estado. En cambio, el estado está asociado con componentes. Cada componente de la 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 (objeto Java antiguo simple).

Wicket busca la simplicidad. No hay archivos de configuración para aprender en Wicket. Wicket es una biblioteca de clases simple con un enfoque consistente para la estructura de componentes.

Ejemplo

Una aplicación Hello World Wicket, con cuatro archivos:

HolaMundo.html
La plantilla XHTML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transicional//EN" "  http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns= "http ://www.w3.org/1999/xhtml" xmlns:wicket= "http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" xml:lang= "en" lang = "es" >     <body> <span wicket:id= "message" id= "message" > El mensaje va aquí </span> </body> </html>     
HolaMundo.java
El componente de la página que se vinculará a la plantilla. A su vez, vincula un componente secundario (el componente Etiqueta denominado "mensaje").
paquete org.wikipedia.wicket ; importar org.apache.wicket.markup.html.WebPage ; importar org.apache.wicket.markup.html.basic.Label ;  public class HolaMundo extiende la página web { /**  * Constructor  */ public HolaMundo () { agregar ( nueva etiqueta ( "mensaje" , "¡Hola mundo!" )); } }             
HolaMundoAplicación.java
La clase de aplicación principal, que enruta las solicitudes de la página de inicio al componente de la página HelloWorld.
paquete org.wikipedia.wicket ; importar org.apache.wicket.protocol.http.WebApplication ; clase pública HelloWorldApplication extiende WebApplication { /**  * Constructor.  */ aplicación pública HolaMundo () { }           /**  * @see org.apache.wicket.Application#getHomePage()  */ public Class getHomePage () { return HolaMundo . clase ; } }       
web.xml
El Descriptor de implementación de la aplicación de servlet , que instala Wicket como el controlador predeterminado para el servlet y organiza la creación de instancias de HelloWorldApplication al inicio.
<?xml versión="1.0" codificación="UTF-8"?> <aplicación web xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns= "http://java .sun.com/xml/ns/javaee" xmlns:web= "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation= "http://java.sun .com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id= "WebApp_ID" version= "2.5" > <display-name> Ejemplo de wicket </ nombre-mostrado> <filtro> <nombre-filtro> HelloWorldApplication </nombre-filtro> <clase-filtro> org.apache.wicket.protocol.http.WicketFilter </clase-filtro> <param-init> <nombre-param > applicationClassName </param-name> <param-value> org.wikipedia.wicket.HelloWorldApplication </param-value> </init-param> </filter> <filter-mapping> <filter-name> HelloWorldApplication </filter -nombre> <patrón-url> /* </ patrón-url> </filtro-mapping> </web-app>                        

Componentes

Los componentes básicos como formularios, enlaces, repetidores, etc. están integrados.

Lanzamientos

Ver también

Referencias

Notas

  1. ^ a b "Noticias de Apache Wicket". wicket.apache.org . Consultado el 27 de septiembre de 2022 .
  2. ^ Dashorst, Martijn (20 de julio de 2007). "Wicket se gradúa de Apache Incubation" . Consultado el 7 de marzo de 2008 .
  3. ^ Carleton, Daniel (12 de octubre de 2007). "Desarrollo web Java al estilo Wicket". DevX. Archivado desde el original el 10 de marzo de 2008 . Consultado el 7 de marzo de 2008 .
  4. ^ Anuncio de Apache Wicket 9: ¡entra en el mundo Java moderno! wicket.apache.org. Recuperado el 5 de octubre de 2020.
  5. ^ Anuncio de Apache Wicket 8: escriba menos, logre más. wicket.apache.org. Recuperado el 22 de mayo de 2018.
  6. ^ Lanzamiento de Apache Wicket v7.0. wicket.apache.org. Recuperado el 16 de abril de 2018.
  7. ^ Lanzamiento de Apache Wicket v6.0.0. wicket.apache.org. Recuperado el 5 de octubre de 2020.
  8. ^ Apache Wicket: Apache Wicket lanza Wicket 1.5. Wicket.apache.org. Recuperado el 13 de agosto de 2013. Archivado el 6 de octubre de 2014 en Wayback Machine .
  9. ^ Apache Wicket: Apache Wicket 1.4 lleva la seguridad de tipos al siguiente nivel Archivado el 25 de abril de 2012 en Wayback Machine . Wicket.apache.org. Recuperado el 13 de agosto de 2013.

enlaces externos

Página web oficial