Click - Programação Web orientada a Componentes e Eventos – Parte I
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:
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:
=> click.exemplo.page.Index
=> click.exemplo.page.Search
=> click.exemplo.page.ChangePassword
=> click.exemplo.page.usuario.Usuarios
=> click.exemplo.page.security.Login
=> click.exemplo.page.security.LogoutNã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” />.
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.


em 3/2/2007 13:56 - Responder

Ricardoem 7/3/2007 23:36 - Responder
Space do autor

Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL

0
0
Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!