Archive

Posts Tagged ‘struts2’

Como obter os objetos HttpServletRequest e HttpServletResponse no Struts2

October 20th, 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!

frameworks, java, javaee , , ,

Struts2, o início

September 25th, 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.

estruturadoprojeto.jpg

 

 

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

Struts2Begin

frameworks, javaee , ,

Comparações entre frameworks web

September 16th, 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.

Pesquisa nos E.U.A sobre os frameworks web

Por que será que o Struts2 está perdendo a pouca popularidade que teve quando foi lançado? Essa pergunta será respondida em breve.

frameworks , , ,

Mais um framework MVC made in Brasil

June 22nd, 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.

frameworks , , , , , , , ,

Quem avisa amigo é

June 21st, 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.

frameworks , , ,

Coletânea de material de JavaEE

June 19th, 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.

Download da coletânea

frameworks , , , ,