Os campos estão retornando nulos

3 respostas
ilidiopaulo

Estrou fazendo uma aplicação com o struts.
Inicia tudo normal, tenho uma tela que me indica usuario e senha, tenho no form uma regra que não deixa os campos serem vazios, quando eu mando enviar o resultado simplesmente me retorna um valor nullo para os dois campos.

codigo do index.

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<%@ 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" %> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <center>
            <title>Chat Alegria</title>
        </center>
    </head>
    <body>
        <center>
            <br><br><br><br><br><br>
        <html:form action="enviaDados">
            <table border="0">
                <thead>
                    <tr>
                        <th colspan="0"><bean:message key="enviaDados.texto"/></th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><bean:message key="enviaDados.nome"/></td>
                        <td><html:text property="nome" /></td>
                    </tr>
                    <tr>
                        <td><bean:message key="enviaDados.senha"/></td>
                        <td><html:password property="senha" /></td>            
                    </tr>
                    <tr>
                        <td colspan="0"><html:submit value="Enviar" /></td>
                        <td colspan="0"><html:reset  value="Limpar" /></td>
                    </tr>
                </tbody>
            </table>
        </html:form>
        </center>

        <html:errors />

        <br><br><br><br><br><br><br><br><br>

        <center>Se ainda não é Cadastrado clique 
            <a href="./Cadastro.jsp"> 
                <input type="Submit" value="CADASTRAR"> 
            </a>
        </center>
    </body>
</html>

codigo do meu form

/*
 * AcaoFormBasico.java
 *
 * Created on 6 de Novembro de 2007, 11:57
 */

package br.com.integrator.action;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

/**
 *
 * @author Administrador
 * @version
 */

public class AcaoFormBasico extends ActionForm {
    
        public AcaoFormBasico() {
        super();
    }
        
    private String nome;
    
    private String senha;
    
    /**
     * @return
     */
    public String getNome() {
        return nome;
    }
    
    /**
     * @param string
     */
    public void setNome(String nome) {
        nome = nome;
    }
    
    /**
     * @return
     */
    public String getSenha() {
        return senha;
    }
    
    /**
     * @param senha
     */
    public void setSenha(String senha) {
        senha = senha;
    }
        
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        
        ActionErrors errors = new ActionErrors();
        
        if (getNome() == null || getNome().length() < 1) {
            errors.add("nome", new ActionMessage("error.nome.requerido"));
        }
        
        if (getSenha() == null || getSenha().length() < 1) {
            errors.add("senha", new ActionMessage("error.senha.requerido"));
        }
        
        return errors;
        
    }
}

codgo da minha action

/*
 * AcaoComStruts.java
 *
 * Created on 6 de Novembro de 2007, 12:44
 */

package br.com.integrator.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
/**
 *
 * @author Administrador
 * @version
 */

public class AcaoComStruts extends Action {
    
    private final static String SUCCESS = "sucesso";

    public ActionForward execute(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        
        return mapping.findForward(SUCCESS);
        
    }
}

desde já agradeço a ajuda.

3 Respostas

von.juliano
Seu struts-config.xml está configurado corretamente? Deve haver nele as seguintes linhas:
<form-beans>
	...
	<form-bean name="AcaoFormBasico" type="br.com.integrator.action.AcaoFormBasico" />
	...
</form-beans>

<action-mappings>
	...
	<action path="/enviaDados" name="AcaoFormBasico" type="br.com.integrator.action.AcaoComStruts">
	...
</action-mappings>
Vê se te ajuda. Flw! :thumbup:
ilidiopaulo

Von Juliano, o meu Struts-config está correto.

O meu action form não sei porque cargas d’água não está não está reconhecendo os parâmetros que estou enviando de meu arquivo index.jsp, ele está os enviando como se estes fossem nulos.
Já debuguei e nada.

Bom, se mais alguém tiver uma sugestão estou aberto a ouvi-la.

bruno_arueira

Bom,

ilidiopaulo eu não tenho domínio com Struts o manusiei muito pouco!

Porém o que diz respeito a boas técnicas de programação é a situação de inicializar as variáveis, no caso do seu form você poderia tentar inicializar a variável nome e senha no método construtor dele!

É uma sugestão espero que ajude!

Criado 8 de novembro de 2007
Ultima resposta 8 de nov. de 2007
Respostas 3
Participantes 3