Apache Click

Source: Wikipedia, the free encyclopedia.
Apache Click
Final release
2.3.0 / March 27, 2011; 13 years ago (2011-03-27) [1]
Repository
Written in
Apache License 2.0
Websiteclick.apache.org

Apache Click is a page and component oriented

API
.

It is a free and

JDK
installation (1.5 or later).

Click was initially created by Malcolm Edgar as the click.sourceforce.net project in 2003. The project then graduated to an

Apache top-level project in November 2009 with Bob Schellink. The project was retired in May 2014.[2]

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

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

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

.

Some developers prefer the more traditional action-based web frameworks including

.

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

  • Daoud, Frederic (January 4, 2010). Getting Started With Apache Click (1st ed.). p. 150. Archived from the original on January 14, 2010. Retrieved January 5, 2010.

See also

References

External links