Apache Click

Apache Click
Click Framework logo
Developer(s) Apache Software Foundation
Stable release 2.3.0 / March 27, 2011; 7 months ago (2011-03-27) [1]
Written in Java
Operating system Cross-platform
Type Web application framework
License Apache License 2.0
Website http://click.apache.org/

Apache Click is a modern page and component oriented web application framework for the Java language and is built on top of the Java Servlet API.

It is a free and open-source project distributed under the Apache license and runs on any JDK installation (1.5 or later).

Click graduated into an Apache top-level project in November 2009.

Contents

Overview

The main design goals are simplicity, ease of use, performance and scalability. To achieve these goals Click leverages an intuitive page and component oriented design.

Pages and components provide good encapsulation of web concepts and enables rapid application development.

Click takes a pragmatic approach and expose few abstractions to learn and understand. The Java Servlet API is fully exposed to the developer which eases the upgrade path from an action based framework to a component based one.

Pages and components are developed in Java while templates can be written in Velocity, FreeMarker or JSP. Components know how to draw themselves alleviating developers from maintaining redundant markup.

A major difference between Click and other component oriented web frameworks is that Click is stateless by design, although stateful pages are supported.

Competing frameworks

There are a number of other component oriented frameworks available for Java such as JSF, Tapestry, WebObjects and Apache Wicket.

Some developers prefer the more traditional action-based web frameworks including Apache Struts, Spring MVC, and Stripes.

Example

A Hello World Click application, with four files:

hello-world.htm
The default template engine for Click is Velocity, the htm file will be similar to a normal, static HTML page.
<!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>
HelloWorld.java
The page model that will be bound to the template.
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
The heart of a Click application is the click.xml configuration file. This file specifies the application pages, headers, the format object and the applications mode.
Click is smart enough to figure out that the HelloWorld page class maps to the template hello-world.htm. We only have to inform Click of the package of the HelloWorld class, in this case org.wikipedia.click. We do that through the click.xml configuration file which allows Click to map hello-world.htm requests to the org.wikipedia.click.HelloWorld page class.
By default the ClickServlet will attempt to load the application configuration file using the path: /WEB-INF/click.xml
<?xml version="1.0" encoding="UTF-8"?>
<click-app>
  <pages package="org.wikipedia.click"/>
</click-app>
web.xml
The servlet application definition.
<?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>

Bibliography

See also

References

  1. ^ http://click.apache.org/


External links


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Apache Incubator — is the gateway for Open source projects intended to become fully fledged Apache Software Foundation projects.The Incubator project was created in October 2002 to provide an entry path to the Apache Software Foundation for projects and codebases… …   Wikipedia

  • Click — Contents 1 Computing 2 Film and television 3 Print 4 Radio …   Wikipedia

  • Apache HTTP Server — Original author(s) Robert McCool Developer(s) Apache Software Foundation Initial release …   Wikipedia

  • Apache OFBiz — Screenshot  …   Wikipedia

  • Apache Derby — Original author(s) Cloudscape Inc (Later IBM) Developer(s) Apache Software Foundation …   Wikipedia

  • Apache MyFaces — Developer(s) Apache Software Foundation Stable release 2.0.3 / December 17, 2010; 10 months ago ( …   Wikipedia

  • Apache Maven — Developer(s) Apache Software Foundation Stable release 3.0.3[1] / March 3, 2011 …   Wikipedia

  • Apache CXF — Developer(s) Apache Software Foundation Stable release 2.4.3 / October 12, 2011; 24 days ago (2011 10 12) Development status Active …   Wikipedia

  • Apache OpenEJB — Developer(s) Apache Software Foundation Stable release 3.1.4 / November 17, 2010; 11 months ago (2010 11 17) Development status Active …   Wikipedia

  • Apache James — Developer(s) Apache Software Foundation Stable release 2.3.2 / August 2009 Preview release 3.0 M2 / 2010 Written in Java …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.