wpjr2’s Weblog

Artigos e tutoriais úteis

Struts Validator: FormSet e i18n

Publicado por wpjr2 em Julho 4, 2008

Na aula de sábado passado, um de meus alunos (Rafael Albergaria) teve um problema ao utilizar o DynaValidatorForm para criar formulários dinâmicos no Struts e para estes serem validados pelo Jakarta Commons Validator 1.3.1. Este exercício está relacionado ao capítulo 9 que vimos na aula passada.

O problema foi que, na definição da validação do formulário (validation.xml), o <formset/> foi definido para uma localização específica (pt, BR), causando um problema ao executar a aplicação sobre um browser que não estivesse definido nesta localização.

<formset country=”BR” language=”pt”>
<form name=”EmpresaForm”>
<field depends=”required” property=”nome”>
<arg key=”empresa.nome” position=”0″ />
</field>
</form>
</formset>

Durante o exercício em sala de aula, como o meu browser estava definido para esta localização, o formset era encontrado corretamente e a validação era executada com sucesso. O problema ocorre quando a localização do browser está definida para um valor diferente do definido no <formset/>. Quando isto acontece, o Commons Validator não consegue encontrar o form definido no validation.xml, desta forma não executando a validação.

Para este problema, existem duas soluções:

a) não definir a localização no formset, tornando-o genérico para todas as localizações e idiomas

b) se for necessário definir a localização (validações para linguas específicas), implementar a validação específica em uma subclasse de DynaValidatorForm, utilizando-a na definição do form no arquivo de configurações struts-config.xml

Deixe um comentário

XHTML: Você pode usar estas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>