Por que eu devo ler este artigo: O artigo apresenta do framework Apache Wicket para desenvolvimento de sistemas web na plataforma Java. Para que serve: É utilizado para o desenvolvimento de sistemas web. Diferentemente da maioria dos frameworks web em Java, o Wicket usa uma abordagem orientada a componentes, o que torna o desenvolvimento de tais sistemas parecido com o desenvolvimento de sistemas Desktop. Em que situação o tema é útil: O uso do Apache Wicket é interessante quando se deseja criar aplicações web utilizando componentes prontos, de forma a aumentar a produtividade no desenvolvimento. Tais componentes podem variar desde simples links a componentes mais complexos, que utilizam tecnologias como AJAX. Além disso, o Wicket possui mecanismos que resolvem alguns problemas comuns no desenvolvimento web, como o gerenciamento de estado ao clicar no botão voltar do browser.
Desenvolvimento Web com Apache Wicket - Resumo Devman:O Apache Wicket é um framework para o desenvolvimento de aplicações web com Java. Diferentemente da maioria dos outros frameworks web, que baseiam-se em interceptação de requisições HTTP e execução de ações, o Wicket é orientado a componentes e o seu estilo de programação é parecido com o de aplicações desktop. Nele, cada página é construída a partir de uma classe Java e um arquivo HTML. Os componentes da página são objetos adicionados à página e associados a tags HTML. A utilização de componentes torna bem simples a utilização de tecnologias como AJAX. Para se ter um link acionado por AJAX, por exemplo, basta substituir o componente padrão para links (o componente Link) por um componente de um tipo diferente (o AjaxFallbackLink). Tais características tornam o Wicket um framework bastante interessante e a sua adoção tem crescido consideravelmente nos últimos anos, desde que se tornou parte dos projetos da fundação Apache.
Programação Orientada a Componentes em ambientes web
Crie sistemas web com o mesmo estilo de programação dos sistemas desktop
Introdução
O Apache Wicket é um framework orientado a componentes para o desenvolvimento de aplicações web com Java. Essa característica o torna diferente da maioria dos outros frameworks como, por exemplo, Struts ou Spring MVC, que baseiam-se na interceptação de requisições HTTP e a execução de ações associadas a essa requisição. No Wicket, uma ação é iniciada através de um evento enviado para determinado componente. Existem outros frameworks web orientados a componentes, por exemplo, Tapestry e JSF. A Figura 1 apresenta um gráfico que mostra, no eixo X, alguns modelos de programação em ambientes web, e, no eixo Y, o quão fácil é programar nesses modelos. É possível perceber ao longo do gráfico que no modelo de Servlets ou JSPs estamos programando sem utilizar frameworks e, por isso, temos uma menor facilidade de desenvolvimento. Percebe-se também que o WebWork e o Struts são frameworks que se encaixam melhor no modelo MVC, enquanto que o Wicket e o JSF se encaixam no modelo de Componentes.
Características
- A configuração do Wicket não exige a criação/manipulação de XMLs;
- O seu modelo de programação Orientado a Componentes torna o desenvolvimento de sistemas web parecido com o desenvolvimento de sistemas desktop com Swing. As páginas web e componentes do Wicket são objetos Java, que suportam encapsulamento, herança e eventos;
- O Wicket não mistura HTML com código Java nem faz uso de taglibs. Os arquivos HTML possuem apenas código HTML e são associados com classes Java através de atributos chamados Wicket ids, existentes nos elementos HTML. Como o Wicket trabalha com HTML puro, os trabalhos do desenvolvedor e do web designer realmente podem ser independentes;
- Validação de dados simples, flexível e fácl de estender;
- É possível usar os recursos de localização em páginas HTML, imagens e vários outros recursos;
- Capacidade de suportar o botão Voltar do navegador através do gerenciamento de versões das páginas. Quando um usuário submete um form ou clica em um link de uma página que foi acessada através do botão Voltar, o Wicket é capaz de identificar se a aplicação ficou em um estado inválido e, nesse caso, redirecionar o usuário para um aviso de página expirada;
- O Wicket possui componentes que são simples de usar e desenvolver;
- Possibilidade de funcionamento em ambientes em cluster sem nenhuma configuração adicional. Como o Wicket faz uso de sessão para armazenar os estados dos componentes, pode ser necessário fazer ajustes no mecanismo de replicação do estado dos componentes;
- O Wicket elimina a necessidade de gerenciar atributos em sessão manualmente. As páginas e componentes são transparentemente armazenados em sessão. Todos os objetos armazenados em sessão podem participar da replicação em um cluster;
- Capacidade de gerar imagens dinamicamente simplesmente através da implementação de um método paint(), de forma parecida com o Swing;
- O Wicket possui componentes para listagens de dados que são muito fáceis de usar. Alguns componentes fornecem também suporte a paginação de listas, com ou sem suporte a Ajax;
- Facilidade de integração com outros frameworks, como Spring e Hibernate.
Observando as características apresentadas, percebemos que algumas das mesmas também estão presentes em outros frameworks, conforme exemplos listados na Tabela 1. Entretanto, o que torna o Apache Wicket diferente é a unificação dessas características em um único framework, simples, eficiente e completo.
Característica | Framework |
Desenvolvimento através de componentes | JavaServer Faces, Tapestry |
Utilização de HTML para criação das Views | Tapestry |
Configuração sem utilização de XML | Stripes |
Alguns conceitos importantes
Para facilitar o entendimento do Wicket é importante definir dois conceitos que serão bastante utilizados no processo de desenvolvimento de software com o mesmo: os componentes e os modelos.
Componentes
Um componente é um artefato reutilizável de software que implementa uma interface, que pode ser substituído por outro que implementa a mesma interface. No Wicket, componentes são coisas como links, text fields, formulários, etc. Os componentes do Wicket são organizados de forma hierárquica, da mesma forma que componentes HTML são organizados. A Figura 2 mostra, em forma de árvore, um exemplo dessa essa estrutura hierárquica, na qual existe um componente Page que possui como filhos um ListView (utilizado para listagens de dados) e um Form (que representa um formulário). O Form possui ainda três componentes filhos, um TextField (campo de texto com uma linha), uma TextArea (campo de texto com várias linhas) e um Button (botão).
Todos os componentes do Wicket foram desenvolvidos para serem estendidos. Essa extensão é realizada comumente através da utilização de classes anônimas, conforme será apresentado posteriormente na seção “Testando mais recursos”.
Modelos
Os componentes do Apache Wicket manipulam e exibem dados de um domínio específico. Uma possível forma de realizar essa manipulação ou exibição dos objetos do domínio seria passar esses objetos para os componentes. Entretanto, isso não seria conveniente, pois o componente não saberia que atributos desses objetos ele deveria apresentar e/ou manipular em uma página web. Para essa apresentação e/ou manipulação, precisamos de uma abstração entre o componente e o objeto de domínio, que é fornecida no Wicket através dos modelos. Esses modelos encapsulam objetos de domínio e fornecem aos componentes os mecanismos específicos para que eles saibam trabalhar com tais objetos. Um objeto encapsulado em um modelo é chamado de model object.
...Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.