|
www.flickr.com
Esse é um módulo do Flickr que mostra fotos e vÃÂdeos públicos de Rafael Carneiro. Faça seu próprio módulo aqui.
|
October 20, 2007
Tenho visto em fóruns pessoas com dificuldade em obter os objetos HttpServletRequest e HttpServletResponse utilizando o Struts2. A action do Struts2 é um POJO e não possui acoplamento e dependência com os objetos dos containers. Mas o framework disponibiliza algumas classes que fornecem esses objetos. A classe ServletActionContext é uma delas, então vamos aos códigos.
Código:
//imports e definição da classe
HttpServletRequest request = ServletActionContext.getRequest(); //obtendo o objeto HttpServletRequest
HttpServletResponse response = ServletActionContext.getResponse(); //obtendo o objeto HttpServletResponse
O Struts2 disponiliza ainda outras formas de obter alguns objetos comuns da especificação Servlet, como a classe ActionContext, que fornece métodos que retornam o contexto da aplicação, mapa da sessão, etc.
Até a próxima!
September 25, 2007
Como prometido, irei iniciar uma série de posts sobre o Struts2. E para começar, vamos aprender a configurar o básico para a sua utilização em projetos.
Primeiro, crie a estrutura de diretórios abaixo (como IDE utilizei o Eclipse) e baixe o arquivo struts-2.0.9-lib.zip, precisaremos das libs mostradas na imagem.
Web.xml
Edite o web.xml do seu projeto e adicione as linhas abaixo. A classe FilterDispatcher é o filtro do Struts2, ela é responsável por todas as requisições da aplicação.
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
struts.xml
Esse é o arquivo de configuração, onde ficam as informações como: actions, forwards, interceptors, plugins, etc. Por questão de visualização e organização, criei o arquivo helloworld.xml para manter o arquivo de configurações do Struts2 mais legÃvel. Não era necessário criar esse arquivo (helloworld.xml), porém já imaginou o tamanho que seria esse arquivo em um projeto real?
<struts>
<constant name=”struts.enable.DynamicMethodInvocation” value=”false” />
<constant name=”struts.devMode” value=”true” />
<include file=”helloworld.xml”/>
</struts>
helloworld.xml
Principais atributos:
- package name: nome do pacote;
- namespace: nome no qual poderá ser utilizado nos formulários e nas URLs ;
- action name: atributo que define o nome da action
- class: caminho completo da action
- result name: nome para o forward ou resultado. Informa para qual JSP a página será direcionada.
<struts>
<package name=”helloworld” namespace=”/helloworld” extends=”struts-default”>
<action name=”HelloWorld” class=”org.carneirorafael.HelloWorld”>
<result name=”SUCCESS”>/helloworld/HelloWorld.jsp</result>
</action>
</package>
</struts>
HelloWorld.java
A classe HelloWorld é a action POJO (Plain Old Java Object) do Struts2. Ela estende a classe ActionSupport e sobrescreve o método execute. Possui o atributo mensagem que é uma String e tem seus métodos acessores. Ao chamar a URL http://seuHost:suaPorta/strutsbegin/helloworld/HelloWorld.action o método execute é chamado e este configura o atributo mensagem, através do método acessos setMessage.
//imports
public class HelloWorld extends ActionSupport {
private static final long serialVersionUID = 7407988331733714918L;
private String mensagem;
@Override
public String execute() throws Exception {
this.setMessage(”HelloWorld com o Struts2!”);
return “SUCCESS”;
}
public String getMensagem() {
return this.mensagem;
}
public void setMessage(final String message) {
this.mensagem = message;
}
}
HelloWorld.jsp
E por fim, a JSP na qual exibirá os dados na tela através da tag <s:property>. Essa tag pega o valor do atributo mensagem que se encontra na action.
<%@ page contentType=”text/html; charset=UTF-8″ %>
<%@ taglib prefix=”s” uri=”/struts-tags” %>
<html>
<head>
<title>HelloWorld com Struts2</title>
</head>
<body>
<s:property value=”mensagem”/>
</body>
</html>
Conclusão
Está muito fácil configurar um projeto e fazer um helloworld no Struts2. E é porque eu não utilizei as anotações (annotations). Irei continuar escrevendo mais posts sobre esse framework, tentando expor suas novas funcionalidades e caracterÃsticas. Espero que esse post possa ajudá-lo a conhecer um dos frameworks MVC mais conhecidos do mercado.
Download
September 16, 2007
Hoje estava lendo notÃcias no javalobby e vi uma pesquisa feita nos E.U.A sobre os frameworks web mais utilizados entre 2005 e 2007. E como todos já sabem (ou pelo menos deveriam saber), o framework web mais utilizado (que por sinal deixou os concorrentes comendo poeira) é o JSF, mais conhecido como JavaServer Faces. Há um bom tempo venho observando a quantidade de empresas que estão adotando essa tecnologia para o desenvolvimento de seus projetos, bem como o aumento de desenvolvedores que utilizam esse framework, seja em suas empresas ou em projetos pessoais.
Venho observando também o excelente leque de opções de bibliotecas feitas em cima do JSF que facilitam a vida dos desenvolvedores, entre elas: ajax4jsf e myfaces.
É interessante também observar a briga entre o Spring MVC e o Ruby on Rails.

Por que será que o Struts2 está perdendo a pouca popularidade que teve quando foi lançado? Essa pergunta será respondida em breve.
June 22, 2007
Foi lançado mais um framework MVC brazuca, o Neo Framework. A moda já pegou e a comunidade java brasileira está cada vez mais centralizada em criar seus próprios frameworks. Pessoalmente eu acho isso muito bom, pois observo que a cada dia que passa as pessoas estão caindo na real de que nós não podemos “viver presos à outras nações”, ou seja, presos aos idiomas e documentações. Não estou sendo radical, é bom e essencial para a nossa área saber inglês e outras lÃnguas, pelo contrário, gosto muito de inglês e de bandas com letras nesse idioma. Apenas estou querendo dizer que esse lado é bom, pois valoriza a comunidade java brasileira.
Outro exemplo de framework brasileiro é o Mentawai, que está sendo bastante utilizado e eu tive o prazer de conhecer o seu funcionamento, criando alguns testes. Ele é baseado em configuração programática, sem a utilização de arquivos XML, Annotations ou qualquer outro tipo de metadata. Informo aos meus conterrâneos da terra da luz (Fortaleza) que o site/sistema do Tribunal de Contas do Estado do Ceará utiliza o Mentawai como framework MVC. A sua documentação é bastante rica, com diversos exemplos de utilização e webapps de exemplos e possui um fórum para tirar dúvidas.
Como framework MVC tem ainda o VRaptor, criado pelo pessoal da Caelum e pelos administradores do GUJ. A versão atual do GUJ, chamada de GUJ2, foi feita utilizando esse framework para a camada de controller. Sua configuração é baseada em Annotations, sua lógica é baseada em POJOs, tem integração com displaytag e suporte à frameworks de apresentação, como velocity e sitemesh.
Para o Swing, tem o framework SwingBean, de autoria do Eduardo Guerra, atual editor-chefe e colunista da revista Mundo Java. O seu intuito é simplificar a vida dos programadores desktop. Confira mais caracterÃsticas e funcionalidades no site do projeto.
A edição número 21 da Mundo Java tem como matéria principal esses frameworks citados acima (também fala sobre o JSenna, antigo JBanana), com exceção do Neo. A edição 23 fala sobre o JSpider, uma ferramenta JavaEE brasileira.
E não acaba por aÃ, tem também o Spring Annotations, uma biblioteca criada pelo Rodrigo Urubatan com o intuito de configurar toda a sua aplicação em Spring utilizando annotations. Na próxima edição da revista Mundo Java terá um artigo sobre essa biblioteca. Clique aqui para conferir a documentação em português.
June 21, 2007
Estou estudando o Struts2 e antes de iniciar vários posts sobre o assunto irei logo adiantar que junto com o pacote completo ou o pacote de apps, de nomes struts-2.0.8-all e struts-2.0.8-apps respectivamente, possui um showcase, é isso mesmo que você leu, você poderá fazer o deploy no seu gato véi (tomcat) preferido e visualizar imagens e códigos fontes sobre o Struts2 feito em Struts2, isso não é maravilhoso? Você verá como construir cruds, utilizar AJAX, irá conhecer as tabpanels (abas), interceptors, principais tags, integrações com SiteMesh, temas e muito mais.
June 19, 2007
Encontrei (www.4shared.com) na web uma coletânea compactada contendo várias apresentações, artigos e PDFs. Os assuntos são: JSF, Struts, Spring, AJAX, Web services, JINI, Hibernate e Ant. Vale a pena conferir!
Por sinal o 4shared é um excelente repositório de arquivos, possui uma excelente ferramenta de busca e você ainda vê o conteúdo do arquivo antes de baixá-lo.

