Struts 2 - Validacao - Passando valor de campo como parametro

2 respostas
J

Pessoal

Procurei em diversos sites mas nao encontrei a solucao.
Preciso validar o CNPJ, CPF ou CEI de um determinado fornecedor.
Criei validadores especificos para cada um deles e inseri no arquivo validators.xml no src da aplicacao. Funciona quando valido independente.

Porem, a forma como foi desenvolvida a aplicacao, o que define se e Pessoa Fisica, Juridica ou Entidade Intenacional e um atributo chamado tipPessoa.
Fizemos um validador que englobasse este tres casos, com base em um pametro string chamado tipoP.

Ai vem o problema. Como passo o valor do atributo tipoPessoa que esta no jsp como parametro do validador?

<field name="fornecedor.cnpjCPF">
		<field-validator type="cpfcnpj">
			<param name="tipoP">[b]Aqui mora o problema[/b]</param>
			<message key="errors.validate.fornecedor.cpf" />
		</field-validator>
	</field>
A classe de validacao recebe a string informada na linha
<param name="tipoP">fornecedor.tipoPessoa</param>
, mas nao o valor do atributo.

Fiz diversas tentativas, como usar #session.fornecedor.tipoPessoa e variante, mas sempre vai a string digitada.

Agradeco a ajuda.

2 Respostas

jyoshiriro

Amigo, tente

<param name="tipoP">${seucampoElExpression}</param>

ou

<param name="tipoP" value="${seucampoElExpression}"></param>

Se não funcionar, acho que não dá para fazer isso.

Sugestão: não tem como, pelo valor do próprio campo a validar, primeiro identificar se é um CPF ou CNPJ ou outra coisa para, só então, fazer a validação?
Tipo: CPF tem 11 dígitos, CNPJ tem Y digitos, outra coisa lá tem X dígitos…

J

Obrigado Yoshiriro

Infelizmente utilizando a expressao EL nao funcionou.

A opcao de tratar pelo tamanho da string esta guardada na manga. Se nao funcionar de outra forma ela sera usada, uma pena.

[]s

Criado 18 de março de 2010
Ultima resposta 18 de mar. de 2010
Respostas 2
Participantes 2