Olá pessoal, não sei mais o que fazer para solucionar este probleam…
Quando o usuario clica no submit do meu formulario o struts executa o método validade, mas se ocorreu algum problema ele não esta chamando o formulário definido no input…
Não sei mais o que fazer :?:
Segue os trechos do código…
em Menu.jsp
-- <html:link page="/FRastreador.jsp" target="right">
-- <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
-- <bean:message key="mainMenu.registrarRastreador"/>
-- </font>
-- </html:link>
strutus_config
-- <form-bean name="rastreadorForm"
---- type="br.com.usialto.form.RastreadorForm"/>
-- <action path="/insertRastreador"
-- type="br.com.teste.action.insertRastreadorAction"
-- name="rastreadorForm" scope="request" validate="true" input="/FRastreador.jsp">
-- </action>
Font da Classe RastreadorForm
package br.com.teste.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class RastreadorForm extends ActionForm {
private String CPF = null ;
private String NOME = null ;
private String TELEFONE = null ;
private String CELULAR = null ;
private String EMAIL = null ;
/*
* Definição dos Métodos get
*/
public String getCPF () {
return this.CPF;
}
public String getNOME () {
return this.NOME;
}
public String getTELEFONE () {
return this.TELEFONE;
}
public String getCELULAR () {
return this.CELULAR;
}
public String getEMAIL () {
return this.EMAIL;
}
/*
* Definição dos Métodos set
*/
public void setCPF ( String Dados ) {
this.CPF = Dados ;
}
public void setNOME ( String Dados ) {
this.NOME = Dados ;
}
public void setTELEFONE ( String Dados ) {
this.TELEFONE = Dados ;
}
public void setCELULAR ( String Dados ) {
this.CELULAR = Dados ;
}
public void setEMAIL ( String Dados ) {
this.EMAIL = Dados ;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
this.CPF = null ;
this.NOME = null ;
this.TELEFONE = null ;
this.CELULAR = null ;
this.EMAIL = null ;
}
public ActionErrors validate( ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
/* forçando o acontecimento do erro */
errors.add("CPF", new ActionError("Erro ao validar o CPF"));
return errors;
}
}
Código da Classe insertRastreadorAction que ainda não esta fazendo nada somente of forward
package br.com.teste.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class insertRastreadorAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if ( isCancelled( request ) ) {
removeFormBean( mapping, request );
}
return mapping.findForward("success");
}
protected void removeFormBean(ActionMapping mapping, HttpServletRequest request) {
// Remove the obsolete form bean
if (mapping.getAttribute() != null) {
if ("request".equals(mapping.getScope())) {
request.removeAttribute(mapping.getAttribute());
} else {
HttpSession session = request.getSession();
session.removeAttribute(mapping.getAttribute());
}
}
}
}
Arquivo FRastreador.jsp
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<jsp:useBean id="constantes" class="br.com.teste.constantes.Constants" scope="session"/>
<!-- Verifica se o usuário está logado no sistema -->
<logic:notPresent name="<%=constantes.USER_KEY%>" scope="session">
<jsp:forward page="/error.jsp" />
</logic:notPresent>
<html:html>
<head>
<title><bean:message key="pedidoForm.title"/></title>
<html:base/>
</head>
<body bgcolor="white">
<html:form action="/insertRastreador.do"">
<%-- exibe os erros de validação --%>
<h5><html:errors/></h5>
<table border="0" width="100%">
<tr>
<td align="left">
<bean:message key="prompt.CPF"/>
<html:text property="CPF" name="rastreadorForm" size="11" maxlength="11"/>
</td>
</tr>
<tr>
<th align="center">
<html:submit>
<bean:message key="button.confirm"/>
</html:submit>
<html:reset>
<bean:message key="button.reset"/>
</html:reset>
<html:cancel>
<bean:message key="button.cancel"/>
</html:cancel>
</th>
</tr>
</table>
</html:form>
</html:html>
e Por fim o arquivo validation.xml obs.:: em javascript a validação esta funcionando…
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
<form-validation>
<formset>
<form name="rastreadorForm">
<field property="CPF" depends="required,mask,minlength">
<arg0 key="prompt.CPF" />
<arg1 name="minlength" key="${var:minlength}" resource="false" />
<var>
<var-name>mask</var-name>
<var-value>^[0-9]+$</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>11</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
Ao inves de chamar o input ele simplemente gera uma pagina em branco…
Eu já Li e Reli e não sei onde esta o erro…
Comparei com o exemplo que exite no proprio struts e não encontrei o erro, se alguem puder me dar uma força…
Valeu