Click - Programação Web orientada a Componentes e Eventos – Parte I

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Neste artigo será apresentado o Click, um framework Orientado a Páginas e Componentes, e ainda possui um modelo de programação baseado em Eventos.

 

Neste artigo será apresentado o Click, um framework Orientado a Páginas e Componentes, e ainda possui um modelo de programação baseado em Eventos.

 

E se você está se perguntando porque mais um framework? Uma possível resposta seria:

 

“Depois de conhecer o Click, você vai começar a pensar que existe algo realmente errado em como aplicações Web em Java são construídas.”.

Click framework

A versão 1.0 do Click acabou de sair do forno, você pode fazer o download aqui:

 

Þ      https://sourceforge.net/project/showfiles.php?group_id=82095

 

O Click possui ótimos exemplos (com fonte disponível), que podem ser acessados aqui:

 

Þ      http://www.avoka.com:8080/click-examples

 

A documentação do Click é excelente, informações detalhadas do framework podem ser encontradas no site.

Configuração

Para configurar o Click, é necessário adicionar os arquivos click.xml e velocity.properties (opcional) no diretório WEB-INF da sua aplicação:

 

clickfig01.JPG

 

No web.xml basta definir o ClickServlet (mapeado para a extensão *.htm):

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

  "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

      <display-name>Click</display-name>

 

      <servlet>

            <servlet-name>click-servlet</servlet-name>

            <servlet-class>net.sf.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>

 

      <welcome-file-list>

            <welcome-file>index.jsp</welcome-file>

      </welcome-file-list>

 

</web-app>

 

No arquivo “click.xml” pode ser ativado o auto-mapeamento entre páginas *.htm para suas respectivas classes.  Note que no arquivo click.xml, também é definido o chartset, o locale (utilizado para internacionalização), configurações de cache, e ainda o modo (development, debug, profile, production).

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<click-app charset="ISO-8859-1" locale="pt_BR">

 

  <pages package="click.exemplo.page " automapping="true" />

 

  <headers>

    <header name="Pragma" value="no-cache"/>

    <header name="Cache-Control" value="no-store, no-cache, must-revalidate, post-check=0, pre-check=0"/>

    <header name="Expires" value="1" type="Date"/>

  </headers>

 

  <mode value="development"/>

 

</click-app>

 

Neste exemplo as classes que estão no pacote “click.exemplo.page” serão mapeadas automaticamente, isto significa que não é necessário configurar nada em XML para mapear uma página *.htm para uma classe Java, como por exemplo é feito no bom e velho Struts.

 

Desta forma, os endereços abaixo são  automaticamente mapeados para as seguintes classes Java: 

index.htm                 =>  click.exemplo.page.Index
search.htm                =>  click.exemplo.page.Search
change-password.htm       =>  click.exemplo.page.ChangePassword
usuario/usuarios.htm      =>  click.exemplo.page.usuario.Usuarios
security/login.htm        =>  click.exemplo.page.security.Login
security/logout.htm       =>  click.exemplo.page.security.Logout 

Não podemos esquecer de que os jars’s do Click precisam estar no WEB-INF/lib: click-1.0.jar e click-extras-1.0.jar.

 

Para maiores detalhes da configuração do Click, veja aqui:

 

Þ      http://click.sourceforge.net/docs/configuration.html

Þ      http://click.sourceforge.net/docs/quick-start.html

Hello World

 

Não existe nada mais simples para aprender um framework do que ver um exemplo de código:

 

Þ      Hello.java

package click.exemplo.page;

 

import java.util.Date;

import net.sf.click.Page;

 

public class Hello extends Page {

 

    public Hello() {

        addModel("time", new Date());

    }

}

 

Agora crie um aquivo “hello.htm” na raiz do diretório Web da aplicação:

 

<html>  <body>    <h2>Hello World</h2>    Data: ${time}









        <br>
        <br>        Data formatada: $format.date(${time})
  </body>
</html>

Ao chamar a página “hello.htm” no browser, a classe Hello será automaticamente executada. No seu construtor é adicionado um objeto Date que é utilizado na página html. Automaticamente após a classe Hello ser executada, o Click chama novamente a página hello.htm para renderizar o resultado. Simples assim :-)

 

O template hello.htm foi escrito em Velocity, mas JSP também pode ser utilizado.

 

Ainda é possível utilizar um formatador de datas e números para customizar a impressão. Para isto é possível configurar um formatador customizado, caso necessário:

 

<format classname="empresa.pacote.format.CustomFormat" />

Componentes Control

Diversos componentes estão disponíveis, conforme a imagem abaixo:

 

Os componentes implementam a interface net.sf.click.Control e são utilizados para gerar seus correspondentes campos em HTML, assim como encapsular o código para recuperar os valores dos campos, e a validação (obrigatório, int, double, datas etc).

 

Por exemplo o componente “net.sf.click.control.TextField” é utilizado para gerar um <input type=”text” name=”x” />.

 

clickfig02.JPG

 

Com isto é possível gerar código HTML utilizando classes Java, o que permite diminuir drasticamente o HTML necessário para cada página. Como o Click é extremamente customizável, isto é um recurso extremamente útil e recomendado, mas é possível escrever todo o código HTML manualmente caso necessário.

 

A grande vantagem de se utilizar os componentes em Java, é que é possível utilizar Orientação a Objetos na camada de visualização, e reaproveitar as páginas (Page) e todos os seus componentes.

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?