Struts - form vem null [RESOLVIDO]

1 resposta
Natalia_Lima

Olá pessoal,

Estou fazendo um aplicativo usando Struts. Na página de Login, insiro os dados de login e senha, porém ao recuperá-los na Action, os mesmos vem null.

Não acho o erro de jeito nenhum, se puderem me ajudar…

Segue os códigos

jsp

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>

<html:form action="/irParaLogin" >
<table> 
   <tr>   
   	<td>C&oacute;digo: &nbsp;<html:text property="codigo" maxlength="20" size="30" /></td>
    </tr>
    <tr>   
    	<td>Senha: &nbsp;&nbsp;<html:password property="senha" maxlength="10" size="15" /></td>
    </tr>    
</table>
 <table>
    <tr>
    	<td>
       		<a href="logar.do">Logar</a>
     	</td>
     </tr>
 </table>

<html:hidden property="codigo"/>
<html:hidden property="senha"/>
</html:form>

struts-config

<struts-config>


<!-- ================================================ Form Bean Definitions -->

    <form-beans>
    	<form-bean name="inicioForm" type="bolao.view.inicio.InicioForm" />
    	<form-bean name="loginForm" type="bolao.view.login.LoginForm" />
    	<form-bean name="dadosUsuarioForm" type="bolao.view.login.DadosUsuarioForm" />
    	<form-bean name="cadastroForm" type="bolao.view.cadastro.CadastroForm"></form-bean>
    </form-beans>


<!-- =========================================== Action Mapping Definitions -->

    <action-mappings>
       
        <action path="/inicio" type="bolao.controller.inicio.InicioAction" name="inicioForm" scope="request" >
            <forward name="irParaInicio" path="/index.jsp" />
        </action>
        
        <action path="/irParaLogin" type="bolao.controller.login.IrParaLoginAction" name="dadosUsuarioForm" scope="request">
        	<forward name="irParaLogin" path="/WEB-INF/jsp/login.jsp"></forward>
        </action>
        
        <action path="/logar" type="bolao.controller.login.LogarAction" name="dadosUsuarioForm" scope="request">
        	<forward name="sucesso" path="/WEB-INF/jsp/logado.jsp"></forward>
        </action>
        
              
        <action path="/irParaCadastro" type="bolao.controller.cadastro.IrParaCadastroAction" name="cadastroForm" scope="request">
        	<forward name="irParaCadastro" path="/WEB-INF/jsp/cadastro.jsp"></forward>
        </action>
        
    </action-mappings>

Action

package bolao.controller.login;

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.ActionForward;
import org.apache.struts.action.ActionMapping;

import bolao.model.login.LogarBD;
import bolao.model.login.vo.DadosUsuarioVO;
import bolao.view.login.DadosUsuarioForm;

public class LogarAction extends Action{

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		try{
			
//Quando debuguei notei que o parâmetro form vem com todos os campos null
			DadosUsuarioForm formulario = (DadosUsuarioForm) form;
			LogarBD logar = new LogarBD();
			DadosUsuarioVO vo = new DadosUsuarioVO();
			
			vo = logar.buscarUsuario(formulario.getCodigo(), formulario.getSenha());
			
			formulario.setCodigo(vo.getCodigo());
			formulario.setNome(vo.getNome());
			formulario.setEmail(vo.getEmail());
			formulario.setSituacao(vo.getSituacao());
			formulario.setTipo(vo.getTipo());
			
			return mapping.findForward("irParaLogado");
		}catch(Exception exception){
			return mapping.findForward("erro");
		}
	}

}

Form

package bolao.view.login;

import org.apache.struts.action.ActionForm;

public class DadosUsuarioForm extends ActionForm {

	/**
	 * 
	 */
	private static final long serialVersionUID = -4503217551864361040L;
	private Integer codigo;
	private String nome;
	private String tipo;
	private String email;
	private String situacao;
	private Integer acertos;
	private Integer erros;
	private String senha;
	
	
	public Integer getCodigo() {
		return codigo;
	}
	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getSituacao() {
		return situacao;
	}
	public void setSituacao(String situacao) {
		this.situacao = situacao;
	}
	public Integer getAcertos() {
		return acertos;
	}
	public void setAcertos(Integer acertos) {
		this.acertos = acertos;
	}
	public Integer getErros() {
		return erros;
	}
	public void setErros(Integer erros) {
		this.erros = erros;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	
	
	
}

1 Resposta

Natalia_Lima

Aew, consegui resolver...

Jà fica aí para quem tiver esse problema depois...

Eu alterei a jsp, colocando uma funcao javascript que dá um submit no form...
Do jeito que eu estava passando, funciona apenas para redirecionar páginas, mas se precisar de valores nos campos do Form, não passa.

:lol: :lol: :lol:

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>

<html:form action="/irParaLogin" >
<table> 
   <tr>   
   	<td>C&oacute;digo: &nbsp;<html:text property="codigo" maxlength="20" size="30" /></td>
    </tr>
    <tr>   
    	<td>Senha: &nbsp;&nbsp;<html:password property="senha" maxlength="10" size="15" /></td>
    </tr>    
</table>
 <table>
    <tr>
    	<td>
        	<a href="javascript:acaoItem( dadosUsuarioForm , './logar.do');">Logar</a>
     	</td>
     </tr>
 </table>

<html:hidden property="codigo"/>
<html:hidden property="senha"/>
</html:form>

<script language="Javascript">
function acaoItem(nomeDoForm, action){	
	nomeDoForm.action = action;
	nomeDoForm.submit();	
}
</script>
Criado 28 de novembro de 2010
Ultima resposta 28 de nov. de 2010
Respostas 1
Participantes 1