Pessoal, to tentando usar o Validator do Struts mas ta dificil… fiz inumeros testes mas nao consigo de jeito nenhum… devo ta fazendo
alguma besteira… antes de relatar como testei, algumas observacoes:
- Uso LookupDispatchAction ao inves de Action
- Uso Tiles
Vamos la:
1 - Modifiquei minha a classe ClienteForm, deixou de extender ActionForm para extender ValidatorForm
...
public class ClienteForm extends ValidatorForm {
private static final long serialVersionUID = -8629802068859556198L;
private String nome;
//outros atributos
//getters e setters
//nada mais!
}
2 - No struts-config.xml…
<struts-config>
...
<form-beans>
...
<form-bean name="ClienteForm" type="br.com.nomus.visao.form.ClienteForm" />
...
</form-beans>
...
<global-forwards>
...
<forward name="/cliente" path="/Cliente.do?metodo=Empty"/>
...
</global-forwards>
...
<action-mappings>
...
<action path="/Cliente" parameter="metodo"
type="br.com.nomus.visao.action.ClienteAction"
name="ClienteForm"
scope="request">
<forward name="cadClientes" path=".cliente" />
</action>
...
</action-mappings>
...
<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"
bufferSize="4096"/>
...
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
</plug-in>
</struts-config>
3 - no tiles-defs.xml…
<tiles-definitions>
<definition name=".paginaPessoal" path="/pages/common/layout.jsp">
...
</definition>
...
<definition name=".cliente" extends=".paginaPessoal">
<put name="corpo" value="/pages/EDCliente.jsp"/>
</definition>
</tiles-definitions>
4 - validator-rules.xml sem modificacoes
5 - validation.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<formset>
<form name="ClienteForm">
<field property="nome" depends="required">
<arg0 key="ClienteForm.nome"/>
</field>
</form>
</formset>
</form-validation>
6 - No .properties…
ClienteForm.nome = Nome
errors.required = o campo {0} é requerido.
7 - Feito isso, em Cliente Action (que extende LookupDispatchAction) eu uso o seguinte codigo:
ActionMessages erros = clientesForm.validate(mapping,request);
saveErrors(request, erros);
testei o método sem preencher o campo “nome”, mas após rodar o validate(), “erros” fica null 
alguem sabe oq tem de errado??
valeu pessoal!!

