stringtranslate.com

Portillo apache

Apache Wicket , comúnmente conocido como Wicket , es un marco de trabajo de aplicaciones 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 nivel superior de Apache en junio de 2007. [2]

Razón fundamental

Los marcos de trabajo 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 de cerca el modelo de los marcos de interfaz gráfica de usuario con estado , como Swing . Las aplicaciones Wicket son árboles de componentes que utilizan delegados de escucha para reaccionar a las solicitudes HTTP en relación con los enlaces y formularios de la misma manera que los componentes Swing reaccionan a los eventos de pulsación de teclas y del ratón. Wicket se clasifica como un marco basado en componentes.

Diseño

Wicket utiliza XHTML simple para las plantillas (lo que impone una clara separación 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 nombrado en el XHTML y se vuelve responsable de representar ese elemento en el resultado final. La página es simplemente el componente contenedor de nivel superior y está emparejado con exactamente una plantilla XHTML. Mediante el uso de una etiqueta especial, un grupo de componentes individuales se puede abstraer en un solo componente llamado panel , que luego se puede reutilizar en su totalidad en esa página, otras páginas o incluso 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 y persistentes automáticamente entre solicitudes. Sin embargo, los modelos más complejos se pueden hacer 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 de persistencia de objetos u ORM en particular , por lo que las aplicaciones a menudo usan alguna combinación de objetos Hibernate [ cita requerida ] , EJB o POJO como modelos.

En Wicket, todo el estado del lado del servidor se administra automáticamente. Nunca debe usar directamente un objeto HttpSession o un contenedor similar para almacenar el estado. En cambio, el estado se asocia 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)

Wicket busca la simplicidad. No hay archivos de configuración que 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:

Hola Mundo.html
La plantilla XHTML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//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= "en" >     <body> <span wicket:id= "message" id= "message" > El mensaje va aquí </span> </body> </html>     
Hola Mundo.java
El componente de página que se vinculará a la plantilla. Este, a su vez, vincula un componente secundario (el componente Etiqueta llamado "mensaje").
paquete org.wikipedia.wicket ; importar org.apache.wicket.markup.html.WebPage ; importar org.apache.wicket.markup.html.basic.Label ;  clase pública HolaMundo extiende WebPage { /**  * Constructor  */ public HelloWorld () { add ( new Label ( "mensaje" , "¡Hola Mundo!" )); } }             
Aplicación HolaMundo.java
La clase de aplicación principal, que dirige las solicitudes de la página de inicio al componente de página HelloWorld.
paquete org.wikipedia.wicket ; importar org.apache.wicket.protocol.http.WebApplication ; clase pública HelloWorldApplication extiende WebApplication { /**  * Constructor.  */ public HelloWorldApplication () { }           /**  * @see org.apache.wicket.Application#getHomePage()  */ public Class getHomePage () { return HolaMundo . clase ; } }       
web.xml
El descriptor de implementación de la aplicación servlet , que instala Wicket como el controlador predeterminado para el servlet y organiza que HelloWorldApplication se instancia durante el inicio.
<?xml version="1.0" encoding="UTF-8"?> <web-app 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" > <nombre-para-mostrar> Ejemplo de Wicket </nombre-para-mostrar> <filtro> <nombre-para-filtro> HelloWorldApplication </nombre-para-filtro> <clase-para-filtro> org.apache.wicket.protocol.http.WicketFilter </filter-class> <init-param> <param-name> applicationClassName </param-name> <param-value> org.wikipedia.wicket.HelloWorldApplication </param-value> </init-param> </filter> <filter-mapping> <filter-name> HelloWorldApplication </filter-name> <url-pattern> /* </url-pattern> </filter-mapping> </web-app>                        

Componentes

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

Lanzamientos

Véase también

Referencias

Notas

  1. ^ https://wicket.apache.org/news/2024/03/. {{cite web}}: Falta o está vacío |title=( ayuda )
  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 con Java al estilo Wicket". DevX. Archivado desde el original el 10 de marzo de 2008. Consultado el 7 de marzo de 2008 .
  4. ^ Anunciamos Apache Wicket 10: ¡construya aplicaciones web modernas con Java!. wicket.apache.org. Consultado el 11 de marzo de 2024.
  5. ^ Anunciamos Apache Wicket 9: ¡adéntrese en el mundo moderno de Java!. wicket.apache.org. Consultado el 5 de octubre de 2020.
  6. ^ Anunciamos Apache Wicket 8: escriba menos, logre más. wicket.apache.org. Recuperado el 22 de mayo de 2018.
  7. ^ Se lanzó Apache Wicket v7.0. wicket.apache.org. Consultado el 16 de abril de 2018.
  8. ^ Se lanzó Apache Wicket v6.0.0. wicket.apache.org. Consultado el 5 de octubre de 2020.
  9. ^ Apache Wicket - Apache Wicket lanza Wicket 1.5. Wicket.apache.org. Consultado el 13 de agosto de 2013. Archivado el 6 de octubre de 2014 en Wayback Machine .
  10. ^ 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. Consultado el 13 de agosto de 2013.

Enlaces externos

Sitio web oficial