Java for Dinner

Um repositório sobre Java e tudo que gira ao redor dele.

  • Arquivos

  • Top Clicks

    • Nenhum

Começando com o Apache Wicket.

Posted by Danilo Barsotti em 26 janeiro, 2008

Bom pessoal, hoje vou dar inicio a uma serie de posts sobre essa framework, o Apache Wicket.
Wicket é uma framework web ( como o Struts, JSF, Mentawai entre outros 859664 milhões de frameworks ) que possui um estilo de programação “ala” Swing, possui uma curva de aprendizado bem pequena, é prazeroso e usa pouca configuração em .xml para que o programa funcione perfeitamente.
Aqui segue um lista dos pontos principais do Wicket:

1. Utiliza POJO ( http://pt.wikipedia.org/wiki/Plain_Old_Java_Objects ).
2. O código é escrito de uma forma “ala” Swing.
3. Resolve os problemas do botão voltar do navegador automaticamente.
4. Mensagens de erros fáceis de se entender e corrigir.
5. Os componentes escritos utilizando o Wicket são totalmente reutilizáveis e podem ser distribuídos em um .jar .
6. Não é intrusivo
7. Compatível com qualquer editor HTML.
8. Entre outras coisas… ( http://wicket.apache.org/introduction.html )

Agora depois de tantas apresentações, vou começar a demonstrar o poder dessa framework.
Eu sei que todo site e blog mostra como iniciar um projeto do zero utilizando o wicket, e eu não vou ser diferente pois acho que apesar de se encontrar essa informação em todo lugar, no javaForDinner não existe, sendo assim:
Você pode criar o seu projeto de 2 maneiras, a primeira é utilizando o Maven e a segunda é fazer na unha, vamos na unha mesmo.

O primeiro passo é fazer o download do wicket , SLF4J e do Log4j. E caso você ainda não tenha um container sugiro o tomcat ou jetty, nesse artigo eu uso o tomcat.
Depois que os downloads foram concluídos, abra o .zip do wicket, entre na pasta lib e adicione o arquivo wicket-1.3.0.jar em seu projeto, ele é a lib principal, onde se encontra todo o core do wicket e todo o mínimo necessário para que se consiga fazer um sistema.
Abra o .zip do SLF4J e copie os arquivos slf4j-log4j12-1.4.2.jar e slf4j-api-1.4.2.jar para o seu projeto.
Abra o .zip do Log4j e copie o arquivo log4j-1.2.15.jar para o seu projeto também.
Pronto, todos as libs necessárias para iniciarmos nosso projeto já estão prontas. Não vou mostrar como adicionar essas libs em seu projeto web pois isso é uma coisa comum que a maioria das pessoas conhecem e também para não sairmos do foco do artigo.
Dentro da pasta WebContent /WEB-INF crie/edite o arquivo web.xml com as seguintes informações:


<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4"><display-name>JavaForDinner</display-name>
<context-param>
<param-name>configuration</param-name>
<param-value>development</param-value>
</context-param>
<filter><filter-name>javafordinner</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>br.com.javafordinner.JavaForDinnerApplication</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>javafordinner</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>

Pronto, essa é a unica configuração que é feita atravéz de um xml, o restante agora é só java :)
Crie uma classe com o nome de JavaForDinnerApplication no pacote br.com.javafordinner e escreva o código a seguir nela:


public class JavaForDinnerApplication extends WebApplication
{
/**
* Constructor
*/
public JavaForDinnerApplication()
{
   super();
}

public Class getHomePage()
{
   return Index.class;
}

@Override
protected void init() {
   super.init();
}

}

Essa classe representa a sua aplicação como se fosse um “public static void main(String args[]) em uma aplicação desktop, é ela que da o start e configura a aplicação.
Vou explicala em detalhes:

WebApplication
A classe que representa a aplicação tem que estender a WebApplication, pois quando iniciamos o servidor, ele vai procurar pela classe que declaramos no web.xml, a classe que representa a aplicação.

public Class getHomePage()
Vou mostrar o codigo da classe Index a seguir, mas por hora, essa classe representa a pagina principal da aplicação, que no caso, é a Index.html.

protected void init()
Aqui setamos todas as configurações necessarias em nossa apliacação, como setar o local padrão dos arquivos css, html entre outras coisas. No momento não existe nenhuma configuração especial, então
só é chamado o super.init() para gerar a configuração default.

Agora vamos criar a classe que representa nossa pagina inicial, crie uma classe chamada Index no pacote br.com.javafordinner.view.pages.Index e escreva o código a seguir:


/**
* Homepage
*/
public class Index extends WebPage {

private static final long serialVersionUID = 1L;

public Index(final PageParameters parameters) {
   add(new Label("label", "Olá Java for Dinner!!!"));
}

}

Explicando:

Toda classe que representa uma pagina da web deve extender a classe WebPage.
Quando seu construtor é criado recebendo paramentros, isso indica ao Wicket que essa pagina não usa a session do servidor por default.

Agora crie um html no mesmo pacote da classe Index ( br.com.javafordinner.view.pages ) com o nome de Index.html e escreva o código a seguir:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<span wicket:id="label"></span>
</body>
</html>

Reparem que exite um span com uma marcação “wicket:id=”label”, esse id=”label” representa o Label da classe Index.

Veja a imagem abaixo o resumo:

Clique aqui e veja uma imagem resumindo o fluxo que seguimos.

O label no html vai ser substituído pelo “Olá Java for Dinner!!!” da classe Index.Agora é só iniciar o servidor e acessar o endereço http://localhost:8080/javafordinner/ e pronto, você ira ver a mensagem .

Nos próximos artigos vamos nos aprofundar mais montando nossos componentes customizados, mudar o comportamento do Wicket entre outras coisas.

Até a próxima!!

About these ads

6 Respostas to “Começando com o Apache Wicket.”

  1. Conheça o Apache Wicket

    Nova framework Java da Apache promete facilitar a criação de conteúdo dinâmico para a web.

  2. Ótimo artigo, espero os próximos.

    Abs!

  3. Juliana said

    Adorei o artigo, achei muito interessante como o wicket faz as coisas, vou aguardar os próximos artigos!!!
    Parabéns!!!!!!!

  4. João Paraiso said

    Olá, gostei muito do artigo sobre Wicket…

    O artigo é muito intuitivo e de fácil entendimento como o proprio framework da Apache. Acredito q logo estarei também tentando aprendê-lo, gostei muito e espero que publique próximos artigos com mais funcionalidades do framework, e com certeza estarei postando aqui minhas dúvidas e sugestões sobre o assunto.

    Parabéns e até a próxima !!!!

  5. Cristiano said

    Parabéns pela iniciativa de compartilhar suas experiências com o Wicket. Ele é realmente muito poderoso e simples.

    Uma observação que faço é que é muito mais simples iniciar o uso do Wicket usando o Maven. É muito, muito simples. Não é necessário baixar bibliotecas da internet nem configurar Jetty.

    Vejam mais em http://wicket.apache.org/quickstart.html.

    Outra questão a ser esclarecida é que o Wicket não usa XML. A afirmação “usa pouca configuração em .xml” quer realmente dizer: “o único ponto que vc precisará botar a mão em algum XML é na inclusão trivial do Servlet ou Filter do Wicket no web.xml”.

    Finalmente, aproveito para lançar um desafio aos leitores: não acreditem no que os defensores do Wicket falam; também não confiem nas suas percepções sobre esse framework apenas lendo os blogs. Façam vocês mesmos a prova e verão que a coisa simplesmente funciona, e muito bem.

  6. Olá Cristiano,

    a idéia era mesmo de não usar o Maven, apesar de eu saber de todas as maravilhas e facilidades que ele proporciona, a idéia do tutorial é de dar a oportunidade das pessoas iniciarem com o Wicket sem conhecer nenhuma outra ferramenta que no caso é o Maven.

    Quem já conhece ou gostaria de iniciar um primeiro projeto usando o Maven, o link que você passou é ideal para isso, já configura tudo, e é super facil de montar um projeto, que como você mesmo disse, não precisa baixar nenhuma lib na unha, o Maven faz tudo! ( O maravilha :) ).

    Muito obrigado pela sua participação, pois a comunidade brasileira do Wicket ainda é fraca, mas vem crescendo ao longo dos dias, e isso já é visível vendo as visitas do blog.

    Valew Cristiano, e caso você queira compartilhar mais informações com a comunidade e ajudar o blog a crescer, estou ( estamos ) a disposição!!!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: