Validation - rules

6 respostas
A

PEssoall, tenho umas duvidas !!
quando eu passo um campo “property” no validation, se eu precisar passar um argumento, como devo fazer ? Quero que um campo somente seja reuerido se outro campo for preenchido ! como eu devo fazer ??

valew

6 Respostas

alexandremlima

A regra de validação para o que você quer é a validwhen.
Você terá que fazer assim:

<field property="campo1" depends="">
    <arg key="ChaveMessageResourcesParaCampo1" />
</field>
<field property="campo2" depends="validwhen">
    <arg key="ChaveMessageResourcesParaCampo2" />
    <var>
        <var-name>test</var-name>
        <var-value>
            ( (campo1 != null) or (*this* != null) )
        </var-value>
    </var>
</field>
A

Mas e quando campo é requirido e precisa ter 15 digitos ! As condições sao as mesmas ??

A

Nao funcionou !!! Passei da seguinte maneira !!

<field property="pesquisaRazaoSocial" depends="">
            	<arg key="label.razaoSocial" />
            </field>

            <field property="raizCnpjCpf" depends="validwhen, mask">
			    <arg0 key="label.cnpjCpf" />
				    <var>
					    <var-name>test</var-name>
						<var-value> ((pesquisaRazaoSocial != null) or (*this* != null) ) </var-value>
				    </var>
				    <var>
						<var-name>mask</var-name> 
	  					<var-value>^[0-15]{9,9}$</var-value> 
  					</var>
            </field>

O que esta errado !

Valew

J

Isso mesmo:

http://struts.apache.org/struts-doc-1.2.9/userGuide/dev_validator.html

requiredif - field dependant validator
Deprecated, use validwhen.

alexandremlima

A regra requiredif foi descontinuada pelo Struts. A documentação pede que você a substitua pelo validwhen. O Struts só mantem a regra requiredif funcionando para compatibilidade com sistemas já codificados anteriormente.

Tente fazer assim:

&lt;field property="pesquisaRazaoSocial" depends=""&gt;
	&lt;arg key="label.razaoSocial" /&gt;
&lt;/field&gt;

&lt;field property="raizCnpjCpf" depends="validwhen, maxlength"&gt;
	&lt;arg0 key="label.cnpjCpf" /&gt;
	&lt;arg1 name="maxlength" key="${var:maxlength}" resource="false" /&gt;
	&lt;var&gt;
		&lt;var-name&gt;test&lt;/var-name&gt;
		&lt;var-value&gt;
		( ( (*this* == null) and (pesquisaRazaoSocial != "") ) or ( (*this* != null) and (pesquisaRazaoSocial == "") ) )
		&lt;/var-value&gt;
	&lt;/var&gt;
	&lt;var&gt;
		&lt;var-name&gt;maxlength&lt;/var-name&gt;
		&lt;var-value&gt;15&lt;/var-value&gt;
	&lt;/var&gt;
&lt;/field&gt;
A

Cara, nao esta funcionando !! ele fica pedindo para digitar o CNPJ e quando eu digito, ele nao sai do lugar, fica pedindo e nada mais !!!
O que pode ser ??
Estou pasando os properties corretos !

Criado 31 de maio de 2006
Ultima resposta 2 de jun. de 2006
Respostas 6
Participantes 3