Trata erro pelo Struts?

Olá pessoal,

estou com uma duvida referente ao validate do Struts pois qunado saio

da pagina Jsp e chamo um action …primeiro ele vai executar o validate

do FORM do Struts mas se encontra um erro teria que apresentar a tela de

erro …quando debuguei o metodo validate está indo bem até aqui :


if (!validarDiaMesObrigatorio()) {
 
 
                     mensagemErro = "Informe uma data de vencimento (Dia e Mês) para efetuar o rotativo";
                     erros.add(ActionErrors.GLOBAL_ERROR, new ActionError("erro", mensagemErro)); // erro que define no strtuts-config
                     ArrayList mensagensErros = new ArrayList();        
                     mensagensErros.add(mensagemErro);
                     urlVoltar = "Volta.do" ;
                     request.setAttribute("mensagemErro" , mensagemErro);
                 }
 
                 return erros;
                 }

esse return erros e depois ele teria que ir pra onde pro ClienteAction

e onde trato pra ir pra <forward name=“erro” pra chamar a pagina jsp

de erro ?

Aonde estou errando ?
Se alguem puder me ajudar , agradeceria ?

abs


struts-config.xml
 
 
 &lt;global-forwards&gt;
 
 
 &lt;forward name=&quot;erro&quot; path=&quot;/home/msgerro.jsp&quot; /&gt;
 
 &lt;/global-forwards&gt;   
 
 &lt;form-beans&gt;

   
   &lt;form-bean name=&quot;ClienteForm&quot; type=&quot;com.seguranca.controller.ClienteForm&quot;/&gt;   
&lt;/form-beans&gt;
 
&lt;!-- ini  --&gt;

&lt;action path=&quot;/Usuario/checa&quot; parameter=&quot;checa&quot; type=&quot;com.seguranca..controller.ClienteAction&quot;
	    scope=&quot;request&quot;  name=&quot;ClienteForm&quot; validate=&quot;true&quot;&gt;
    	&lt;forward name=&quot;success&quot; path=&quot;/home/frame.html&quot;/&gt;
        
&lt;/action&gt;


 Form.....
 
 
 public class ClienteForm  extends ActionForm &#123;
 
 
 	public ActionErrors validate&#40;ActionMapping mapping,
             HttpServletRequest request&#41; &#123;
 		
             ActionErrors erros = new ActionErrors&#40;&#41;;
 
 
                 if &#40;!validarDiaMesObrigatorio&#40;&#41;&#41; &#123;
 
 
                     mensagemErro = &quot;Informe uma data de vencimento &#40;Dia e Mês&#41; para efetuar o rotativo&quot;;
                     erros.add&#40;ActionErrors.GLOBAL_ERROR, new ActionError&#40;&quot;erro&quot;, mensagemErro&#41;&#41;; // erro que define no strtuts-config
                     ArrayList mensagensErros = new ArrayList&#40;&#41;;        
                     mensagensErros.add&#40;mensagemErro&#41;;
                     urlVoltar = &quot;Volta.do&quot; ;
                     request.setAttribute&#40;&quot;mensagemErro&quot; , mensagemErro&#41;;
                 &#125;
 
                 return erros;
                 &#125;
 
 
 &#125;
 
 ----
 
 action do struts
 
 
 public class ClienteAction extends Action &#123;
 	
 	public ActionForward execute&#40;ActionMapping mapping, 
 	                             ActionForm actionForm,
 			                     HttpServletRequest request, 
 			                     HttpServletResponse response&#41; &#123;
     	ActionForward forward = null; 
         
         ClienteForm form = &#40;ClienteForm&#41; actionForm;	
        		                     	
         try&#123;
 		
             
             System.out.println&#40;&quot;exemplo&#40;ProcessoAction 2&#41;&quot;&#41;;
            
             request.setAttribute&#40;&quot;ClienteForm&quot;, form&#41;;
             
         	System.out.println&#40;&quot;exemplo&#40;2&#41;&quot;&#41;;
 			forward = mapping.findForward&#40;&quot;sucesso&quot;&#41;;
 
 		&#125;catch &#40;Exception e&#41; &#123;
 			System.out.println&#40;&quot;erro =&quot;+e&#41;;
 		        return null;
 		&#125;
 		return forward;	
   &#125;
 &#125;
 

cara…no mapeamento da sua action no struts config, vc configura um outro foward, chamado erro no caso…vc pode usar a parte de messages do struts tb, tipo assim…

na sua action, antes de vc dar o foward, vc adiciona:

vc cria um bloco de codigo na sua jsp, com a tag message:present e depois poe o codigo q captura seu erro e mostra…tipo assim:

&lt;logic&#58;messagesPresent&gt; &lt;table&gt; &lt;tr&gt; &lt;td class=&quot;mensagem&quot;&gt; Ocorreu o seguinte erro&#58; &lt;ul&gt; &lt;html&#58;messages id=&quot;erro&quot;&gt; &lt;li&gt;&lt;bean&#58;write name=&quot;erro&quot; filter=&quot;false&quot;/&gt;&lt;/li&gt; &lt;/html&#58;messages&gt; &lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/logic&#58;messagesPresent&gt;

lembrando q vc tem q configurar o input da sua action para usar o validator…o input seria pra determinar, pra onde q ele tem q redirecionar caso o validator acuse algum problema no form…

seria algo do tipo:

[code]<action path="/CadastrarForm" scope="request" name="formCadastro" validate="no" type="br.com.cadastro.action.CadastrarFormAction">
<forward name="sucesso" path="cadastro.jsp"/>
</action>

	&lt;action path=&quot;/CadastrarSessao&quot; name=&quot;formCadastro&quot; input=&quot;input&quot; type=&quot;br.com.cadastro.action.CadastrarSessaoAction&quot; scope=&quot;session&quot;&gt;
		&lt;forward name=&quot;input&quot; path=&quot;/CadastrarForm.do&quot;/&gt;					
		&lt;forward name=&quot;sucesso&quot; path=&quot;cadastro.confirmar&quot;/&gt;
		&lt;forward name=&quot;cancelado&quot; path=&quot;cadastro.jsp&quot;/&gt;
	&lt;/action&gt;[/code]

bom, acho q deve te ajudar…