Re:Struts (ActionErrors validate)

1 resposta
paulovittor23

Boa noite.

Tem três coisas que batendo o olho eu percebi:

1º Verifique se o campo é null antes de ver se é vazio, senão vc receberá um NullPointerException caso o mesmo venha a ser nulo.

if(nome == null || nome.equals("")){ erros.add("nome", new ActionMessage("nome.erro")); }

2º faltou vc chamar a validação do formulário

<html:form action="acao.do" onsubmit="return validateFormulario(this);"> <html:text property="nome" /> <html:submit/> </html:form>

3º faltaram os atributos input e validate na declaração da Action

<action path="/acao" name="formulario" scope="request" type="app.acao.Acao" input="SuaJsp_ou_seu_Tiles" validate="true"> <forward name="retorna" path="/pages/Welcome.jsp" /> </action>

Faça essas modificações e depois qqr coisa posta ai se não der certo, blz ?

Boa sorte :smiley:

[]s

1 Resposta

everson_z

Ele não me mostra nada no (Se deixar o nome me branco).

Form
public class Formulario extends ActionForm {

	private String nome;	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}	
	public ActionErrors validate(ActionMapping mapping, HttpServletRequest req, HttpServletResponse res)
							throws Exception{
		ActionErrors erros = new ActionErrors();
		
		if(nome.equals("") || nome == null){
			erros.add("nome", new ActionMessage("nome.erro"));
		}
		return erros;
	}
}
Action
public class Acao extends Action {
	
	public ActionForward execute(ActionMapping mapping, ActionForm form,
				HttpServletRequest req, HttpServletResponse res) throws Exception{

		Formulario formulario = (Formulario) form;
		
		System.out.println(formulario.getNome() + " " + formulario.getPass());
		req.setAttribute("objetoToRender", formulario.getNome());
		return mapping.findForward("retorna");
	}
}
Struts-config
<form-beans>
        <form-bean
            name="formulario"
            type="app.formulario.Formulario" />  
    </form-beans>

    <action-mappings>

        <action
            path="/Welcome"
            forward="/pages/Welcome.jsp"/>
       <action
            path="/acao"
            name="formulario"
            scope="request"
            type="app.acao.Acao">
            <forward name="retorna" path="/pages/Welcome.jsp" />
       </action>
html
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

<html:html>
<head>
<title><bean:message key="welcome.title"/></title>
<html:base/>
</head>
<body bgcolor="white">

	<html:form action="acao.do">
		<html:text property="nome" />
		<html:submit/>
	</html:form>
<html:errors/>
</body>
</html:html>

Vlw

Criado 1 de abril de 2007
Ultima resposta 1 de abr. de 2007
Respostas 1
Participantes 2