Apache Click es un framework para aplicaciones web orientado a páginas y a componentes, desarrollado en Java e implementado mediante la API de Java Servlets.
Apache Click | ||
---|---|---|
Información general | ||
Tipo de programa | Framework para aplicaciones web | |
Desarrollador | Apache Software Foundation | |
Lanzamiento inicial | 20 de noviembre de 2009 | |
Licencia | Apache License 2.0 | |
Estado actual | Obsoleto | |
Información técnica | ||
Programado en | Java | |
Versiones | ||
Última versión estable | 2.3.0 (info) ( 27.03.2011) | |
Asistencia técnica | ||
Sin soporte | ||
Enlaces | ||
Sitio web oficial
Repositorio de código
Seguimiento de errores
| ||
Se trata de un proyecto libre y de código abierto, cuyos resultados se distribuyen bajo la licencia Apache y que se ejecuta en cualquier instalación de JDK (versión 1.5 o superior).
Click se graduó como proyecto top level de Apache en noviembre de 2009. El proyecto se retiró en mayo de 2014.[1]
Los objetivos de diseño principales del proyecto son la simpleza, la facilidad de uso, el desempeño y la escalabilidad. Para lograr estos objetivos, Click presenta un diseño intuitivo, orientado a páginas y componentes.
Páginas y componentes representan una buena manera de encapsular los conceptos de la web y permiten el desarrollo rápido de aplicaciones.
Click aplica un enfoque pragmático, siendo pocas las abstracciones que resulta necesario aprender y entender. El API de Java Servlets se encuentra plenamente al alcance del desarrollador, lo que facilita la conversión de aplicaciones desde un framework basado en acciones a uno basado en componentes.
Las páginas y las componentes se desarrollan en Java mientras que las plantillas se escriben en Velocity, FreeMarker o JSP. Las propias componentes saben cómo representarse a sí mismas, aliviando a los desarrolladores de la tarea de manutención de markup redundantes.
Una diferencia central entre Click y otros frameworks orientados a componentes consiste en que Click, por su propio diseño, no maneja estados, aunque sí soporta páginas dotadas de estado.
Existen varios otros frameworks orientados a componentes para Java, tales como JSF, Tapestry, WebObjects y Apache Wicket.
Algunos desarrolladores prefieren usar frameworks más tradicionales basados en acciones, entre los que se incluyen Apache Struts, Spring MVC y Stripes.
Una aplicación Click tipo Hola mundo, con cuatro archivos:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<p>$message</p>
</body>
</html>
package org.wikipedia.click;
import org.apache.click.Page;
public class HelloWorld extends Page {
/**
* Constructor
*/
public HelloWorld() {
// Add the value to the map ("message" = "$message")
addModel("message", "Hello World!");
}
}
click.xml
. En este archivo se especifican las páginas de la aplicación, los encabezamientos, el objeto de formato, así como el modo de la aplicación.HelloWorld
debe enlazarse con la plantilla hello-world.htm
. Solo se le necesita informar a Click del paquete al que pertenece la clase HelloWorld
, en este caso org.wikipedia.click
. Esto se hace por medio del archivo de configuración click.xml
que le permite a Click mapear las peticiones de hello-world.htm
a la clase de página org.wikipedia.click.HelloWorld
.ClickServlet
intentará cargar el archivo de configuración de la aplicación usando la ruta: /WEB-INF/click.xml
<?xml version="1.0" encoding="UTF-8"?>
<click-app>
<pages package="org.wikipedia.click"/>
</click-app>
<?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">
<display-name>Click Example</display-name>
<servlet>
<servlet-name>click-servlet</servlet-name>
<servlet-class>org.apache.click.ClickServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>click-servlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
</web-app>