try this errors.add("usuario", new ActionError("login.usuario.requerido"));
> -----Original Message----- > From: Francisco Antonio Vieira Souza [mailto:[EMAIL PROTECTED] > Sent: Wednesday, September 21, 2005 8:30 PM > To: Struts Users Mailing List > Subject: Re: Help - I cannot validate a simple form with 2 fields > > > I really dont get it, I might be being so stupid not figuring out what > is going on wrong here, but I dont. > > Clearing a little. I decided not to use DynaForm and go back to the > usual ActionForm and gave up using Client-side validation. > > When I implement the validate method of the Bean (as it is now) I get > the error messages as expected, but I had to create a protected method > to check if the field was null or blank, then put the error message in > the ActionMessage. > > But I dont see any sense in doing such thing like that, why should I do > this inside validate method if I have already said in validation.xml > that those fields are REQUIRED, at least that message should be shown to > the user. Correct me if I am wrong. > > If I comment the validate method nothing happen, it is not able to check > if the field was left blank. > > Please be pacience and have a look again: > > struts-config.xml: > <?xml version="1.0" encoding="ISO-8859-1" ?> > > <!DOCTYPE struts-config PUBLIC > "-//Apache Software Foundation//DTD Struts > Configuration 1.2//EN" > "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> > > > <struts-config> > > <form-beans> > <!-- This is it --> > <form-bean name="LoginUsuarioForm" > type="br.com.gerente.bean.LoginFormBean"/> > > <form-bean name="GetClienteForm" > type="br.com.gerente.bean.GetClienteFormBean"/> > </form-beans> > > <global-exceptions> > > </global-exceptions> > > <global-forwards> > <forward name="welcome" path="/Clientes.do"/> > <forward name="inicio" path="/index.jsp" redirect="true"/> > </global-forwards> > > <action-mappings> > <!-- This is an action just to call the .jsp file with > the form --> > <action path="/prepararLogin" > type="br.com.gerente.action.SuccessAction"> > <forward name="success" path="/paginas/login.jsp"/> > </action> > > <!-- This is my (first) problem in validation --> > <action name="LoginUsuarioForm" > input="/paginas/login.jsp" > path="/LoginUsuario" > scope="request" > type="br.com.gerente.action.LoginUsuarioAction" > validate="true"> > <forward name="sucesso" path="/paginas/clienteCadastro.jsp"/> > </action> > > <!-- This is just the next form to be processed after validating > the previous --> > <action path="/Clientes" forward="/paginas/clienteCadastro.jsp"/> > > <!-- This is another form with the data from the previous > inputs --> > <action name="GetClienteForm" > input="/paginas/clienteCadastro.jsp" > path="/clientes" > scope="request" > type="br.com.gerente.action.GetClienteFormAction"> > <forward name="mostrandoDadosCliente" > path="/paginas/clienteDados.jsp"/> > </action> > > </action-mappings> > > <controller > processorClass="org.apache.struts.tiles.TilesRequestProcessor"/> > <message-resources parameter="br/com/gerente/Resources"/> > > <!-- ========================= Tiles plugin > ===============================--> > <plug-in className="org.apache.struts.tiles.TilesPlugin" > > <set-property property="definitions-config" > value="/WEB-INF/tiles-defs.xml" /> > <set-property property="moduleAware" value="true" /> > </plug-in> > > <!-- ========================= Validator plugin > ================================= --> > <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> > <set-property > property="pathnames" > value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> > <set-property property="stopOnFirstError" value="true" /> > </plug-in> > > </struts-config> > > 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> > > <global> > </global> > > <formset > > <constant> > <constant-name>postalCode</constant-name> > <constant-value>^[0-9a-zA-Z]*$</constant-value> > </constant> > > <form name="LoginUsuarioForm"> > <field property="usuario" depends="required"> > <arg key="login.usuario"/> > </field> > <field property="senha" depends="required"> > <arg key="login.senha"/> > </field> > </form> > </formset> > > </form-validation> > //---------------------------------------------------------------- > ----------------------------------------------- > > /* > * LoginFormBean.java > * > * Created on 21 de Setembro de 2005, 08:25 > * > */ > > package br.com.gerente.bean; > > import javax.servlet.http.HttpServletRequest; > import org.apache.struts.action.ActionMapping; > import org.apache.struts.action.ActionErrors; > import org.apache.struts.action.ActionMessage; > > public class LoginFormBean extends > org.apache.struts.validator.ValidatorForm { > private String usuario; > private String senha; > private String senhaConfirmada; > > public LoginFormBean() { > } > > public void reset(ActionMapping actionMapping, HttpServletRequest > request) { > } > > public ActionErrors validate(ActionMapping actionMapping, > HttpServletRequest request) { > ActionErrors errors = super.validate( actionMapping, request ); > if (errors == null) { > errors = new ActionErrors( ); > } > if( nullOrBlank( (String)this.getUsuario()) ) { > errors.add("usuario", new > ActionMessage("login.usuario.requerido")); > } > if( nullOrBlank( (String)this.getSenha()) ) { > errors.add("senha", new > ActionMessage("login.senha.requerido")); > } > > return errors; > } > > protected boolean nullOrBlank(String str) { > return ((str == null) || (str.length() == 0)); > } > > public String getUsuario() { > return usuario; > } > > public void setUsuario(String usuario) { > this.usuario = usuario; > } > > public String getSenha() { > return senha; > } > > public void setSenha(String senha) { > this.senha = senha; > } > > public String getSenhaConfirmada() { > return senhaConfirmada; > } > > public void setSenhaConfirmada(String senhaConfirmada) { > this.senhaConfirmada = senhaConfirmada; > } > > } > //---------------------------------------------------------------- > ----------------------------------------------- > > /* > * LoginUsuarioAction.java > * > * Created on 21 de Setembro de 2005, 09:50 > * > */ > > package br.com.gerente.action; > > import br.com.gerente.bean.GetClienteFormBean; > import javax.servlet.http.HttpServletRequest; > import javax.servlet.http.HttpServletResponse; > > import org.apache.struts.action.ActionForm; > import org.apache.struts.action.ActionForward; > import org.apache.struts.action.ActionMapping; > > public class LoginUsuarioAction extends org.apache.struts.action.Action { > > /** Creates a new instance of LoginUsuarioAction */ > public LoginUsuarioAction() { > } > > public ActionForward execute(ActionMapping mapping, ActionForm form, > HttpServletRequest request, HttpServletResponse response) throws > Exception { > return mapping.findForward("sucesso"); > } > } > //---------------------------------------------------------------- > ----------------------------------------------- > > Resources.properties: > #--- erro padrao / default errors -- > errors.header=<font color="red">Erro! Por favor verifique a(s) > seguinte(s) mensagem(ns):<ul> > errors.footer=</ul></font> > errors.prefix=<LI> > errors.suffix=</LI> > > errors.invalid={0} is invalid. > errors.maxlength={0} can not be greater than {1} characters. > errors.minlength={0} can not be less than {1} characters. > errors.range={0} is not in the range {1} through {2}. > errors.required={0} é obrigatório. > errors.byte={0} must be an byte. > errors.date={0} is not a date. > errors.double={0} must be an double. > errors.float={0} must be an float. > errors.integer={0} must be an integer. > errors.long={0} must be an long. > errors.short={0} must be an short. > errors.creditcard={0} is not a valid credit card number. > errors.email={0} is an invalid e-mail address. > errors.cancel=Operation cancelled. > errors.detail={0} > errors.general=The process did not complete. Details should follow. > errors.token=Request could not be completed. Operation is not in sequence. > > login.titulo=Login de Acesso ao Sistema [G]erente > login.usuario=Nome de acesso > login.senha=Senha de acesso > login.usuario.requerido=Nome de acesso obrigatório > login.senha.requerido=Senha de acesso obrigatório > > # -- botoes/buttons -- > botao.enviar=Enviar Dados > botao.cancelar=Cancelar > botao.confirmar=Confirmar > botao.limpar=Limpar > botao.salvar=Salvar > //---------------------------------------------------------------- > ----------------------------------------------- > > login.jsp: > <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" > prefix="bean" %> > <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" > prefix="html" %> > <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" > prefix="logic" %> > > <html:html locale="true"> > <head> > <title><bean:message key="login.titulo"/></title> > <html:base/> > </head> > > <body> > <center> > <h1><bean:message key="login.titulo"/></h1> > > <table width="50%"> > <html:form action="/LoginUsuario.do" focus="login" > method="post"> > <thead> > <tr> > <th ><bean:message key="login.usuario"/></th> > <th ><bean:message key="login.senha"/></th> > </tr> > </thead> > <tbody> > <tr> > <td><html:text property="usuario" size="20" > maxlength="20" /></td> > <td><html:password property="senha" > size="20" maxlength="10"/></td> > </tr> > <tr> > <td> > <html:submit> > <bean:message key="botao.enviar" /> > </html:submit> > </td> > <td> > <html:cancel> > <bean:message key="botao.cancelar" /> > </html:cancel> > </td> > </tr> > </tbody> > </html:form> > </table> > </center> > <html:errors /> > </body> > <html:javascript formName="LoginUsuarioForm" > dynamicJavascript="true" staticJavascript="false"/> > > </html:html> > > Thanks in advance. > Francisco > > > > > > _______________________________________________________ > Novo Yahoo! Messenger com voz: ligações, Yahoo! Avatars, novos > emoticons e muito mais. Instale agora! > www.yahoo.com.br/messenger/ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]