Artigo Java Magazine 38 - Formatação e Conversão no Struts

Artigo publicado pela Java Magazine 38.

Esse artigo faz parte da revista Java Magazine edição 38. Clique aqui para ler todos os artigos desta edição

 

 

Clique aqui para ler todos os artigos desta edição

 

Formatação e Conversão no Struts

Estendendo o framework e aumentando a capacidade da sua aplicação web

Utilize Converters para resolver problemas de conversão no Struts e deixe seus FormBeans mais completos

 

O Struts oferece muitas funcionalidades para o tratamento de entrada de dados, mas possui ainda algumas limitações nessa área. Quem utiliza o framework sabe da dificuldade para se tratar, por exemplo, datas e números decimais, e acaba utilizando strings para representar algumas informações que vêm do usuário.

Quando o usuário entra com valores em um formulário e os envia, estes chegam ao servidor em forma de strings. O Struts tenta converter essas strings para os formatos mapeados no FormBean (classe que representa um formulário), e caso não consiga, recebemos erros pouco explicativos ou páginas em branco; ou os valores podem ser tratados de forma equivocada. Por exemplo, em uma data como 10/03/06, o mês será 10, 03 ou 06? Para nós brasileiros, fica claro que o mês é março – mas e para o sistema?

Uma das soluções mais utilizadas é criar métodos no FormBean para tratar os dados enviados. Dessa forma, existiriam no FormBean dois métodos: um para converter para o tipo correto, no momento da entrada dos dados, e outro para converter para string no momento da exibição. O problema dessa solução é que ela se repetirá para todos os formulários que precisam da conversão, além de não se aplicar aos DynaActionForms (representações dinâmicas de formulários configuradas no struts-config.xml). Aqui veremos uma solução alternativa, que oferece vantagens.

Solução proposta

Para demonstrar nossa solução, vamos construir uma aplicação simples, com uma página JSP, um FormBean e uma Action. Usaremos uma classe concreta para representar o formulário, mas poderíamos igualmente utilizar um DynaActionForm. O exemplo completo está disponível no site da Java Magazine.

O JSP, como mostra a Listagem 1, constrói um formulário com dois campos de texto; o primeiro para uma data e o segundo para um número decimal. Note que para a construção do formulário utilizamos as tags do Struts <html:form> e <html:text>.

 

Listagem 1. index.jsp: Página com o formulário de exemplo.

<%@ taglib uri="/tags/struts-html" prefix="html" %>

<html:form action="/PostFormularioAction">

    Data: <html:text property="data" /><br />

    Valor: <html:text property="valor" /><br />

  <html:submit/>

</html:form>

 " [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados