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

FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'">Validação na web

O Struts 1.1 integra recursos sofisticados de validação de dados em aplicações web

O framework de desenvolvimento web Struts pode ser visto, hoje, como um padrão para a construção de aplicações web confiáveis e modulares. No entanto, um dos pontos falhos da sua distribuição básica, na versão 1.0, era a inexistência de um meca¬nismo de validação de dados padronizado. Apesar de aquela versão incluir bibliotecas de validação externas – o pacote Struts Validator –, o recurso não era explorado em todo o seu potencial. Em alguns casos, todo o processo de validação era refeito a cada tela, levando à redundância de código e à disseminação de maneiras distintas de resolver um mesmo problema.

 

Incorporado oficialmente à versão 1.1 do Struts, o Validator visa centralizar o processo de validação de dados, reduzirem a redundância de código e desacoplar o código de validação, além de permitir que a validação de formulários seja realizada tanto do lado servidor (no container web), quanto do lado do cliente (no navegador), com código Java Script gerado automatica­mente.

Este texto pressupõe conhecimentos bá­sicos sobre o Struts (veja uma introdução ao framework no artigo “Struts Essencial” na Edição 6).

 

Configurando o ambiente

O Validator é um plug-in do Struts 1.1 e deve ser registrado com o framework no arquivo struts-config.xml. A Listagem 1 mostra a configuração necessária.

 

Nota: a aplicação-modelo struts-blank. war incluída na distribuição do Struts já configura o plug-in de validação.

 

Nos arquivos referenciados no parâme­tro pathnames – validation. xml e validation-rules.xml – são definidas as validações para os formulários, além de regras e classes de validação predefinidas (veremos mais so­bre esses arquivos, adiante).

 

Mecanismos de validação

 

Tradicionalmente, a validação de formu­lários no Struts era feita no método validate dos Action Forms, chamado quando o formu­lário é submetido. Usando o Validator, as validações são especificadas em arquivos de configuração e classes externas. Em vez de criar descendentes de Action Form, herda-se da subclasse Validator Form. Esta contém uma implementação padrão do método validate, que lê os arquivos de configuração XML ativando as validações especificadas. A Listagem 2 mostra um exemplo de formulário validado (chama­do CadastrarUsuarioForm). Note que nenhum código de validação é inserido na classe.

Como de costume, o formulário deve ser registrado no arquivo struts-config. xml. A Listagem 3 contém a configuração neces­sária.

 

Validadores e mensagens

O Struts 1.1 inclui um conjunto de “va­lidadores” predefinidos, para checagens de tipos primitivos, datas, intervalos e expressões regulares, entre outros (veja a Tabela 1), especificados no arquivo valida­tion-rules. xml. A Listagem 4, por exemplo, mostra a declaração do validador intRange, que verifica se o valor de um campo está entre dois limites inteiros.

 

Como se vê na listagem, os va­lidadores são definidos usando o elemento <validator>, que define atributos especificando cada de­talhe da validação. No exemplo, intRange é definido pelo método validateIntRange da classe org.apa­­­­­­­
che.struts.validator.FieldChecks.

A definição de um validador inclui ainda outras informações importantes:

 

• O atributo depends determina que o validador somente será executado após todos os ou­tros validadores listados como dependentes. O int Range, por exemplo, é executado somente quando um campo contiver um valor inteiro, assim é definido como depen­dente do validador predefinido integer (não mostrado aqui);

 

• O elemento <javascript> define um trecho de código para uso na validação no lado do cliente. O código Java Script é declarado no corpo do elemento e referenciado pelo atributo method;

 

• msg define o identificador da mensagem exibida se a validação gerar um erro; a mensagem deve ser especificada em um dos arquivos de recursos do Struts. A

Listagem 5 mostra o arquivo Application
Resources.properties usado no exemplo, com mensagens traduzidas. Observe que ao final são definidas mensagens para os campos do Validator Form criado anteriormen­te – essa separação facilita a manutenção e simplifica a internacionalização das aplica­ções (um dos pontos fortes do Struts).

...

Quer ler esse conteúdo completo? Tenha acesso completo