Apostila Caelum FJ-21 problema

bom galera eu to lendo a apostila da ceelum de desenvolviento pra web!

Eu tenho uma açao que insere um contato no banco de dados so que a minha açao ta inserindo os campos

todos como null mando ai o codigo das classes e dos arquivos de configuraçao!!

[code]package br.com.caelum.struts.form;

import org.apache.struts.action.*;

import br.com.caelum.jdbc.Contato;

public class ContatoForm extends ActionForm {

private Contato contato = new Contato();

public Contato getContato(){
	
	return this.contato;
}

}[/code]

[code]package br.com.caelum.struts.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.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.caelum.jdbc.Contato;
import br.com.caelum.jdbc.ContatoDAO;
import br.com.caelum.struts.form.ContatoForm;

public class AdicionaContatoAction extends Action {

@Override
public ActionForward execute(ActionMapping map, ActionForm form, 
		HttpServletRequest request, HttpServletResponse response) 
		throws Exception {
	
	ContatoForm formulario = ((ContatoForm)form);
	
	Contato contato = formulario.getContato();
	
	ContatoDAO dao = new ContatoDAO();
	
	dao.addContato(contato);
	
	return map.findForward("sucess");
	

}

}

[/code]

[code]

<?xml version="1.0" encoding="ISO-8859-1"?>
<action path="/addContato" name="ContatoForm" type="br.com.caelum.struts.action.AdicionaContatoAction" scope="request" input="/novo.jsp">
	<forward name="sucess" path="/exemplo.jsp"/>
</action>

<action path="/teste" type="br.com.caelum.struts.action.TesteSimplesAction">
	<forward name="ok" path="/exemplo.jsp"/>
</action>

<action path="/listaContatos" type="br.com.caelum.struts.action.ListaContatosStruts">
	<forward name="lista" path="/lista.jsp"/>
	<forward name="vazia" path="/lista-vazia.jsp"/>
</action>

[/code]

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

<html:html>
	<head>
		<title> Adicionando um contato </title>
	</head>
	
	<html:errors/>
	
	<html:form action="/addContato" method="post" focus="contato.nome">
	
	Nome:
	<html:text property="contato.nome"/><br/>
	
	Email:
	<html:text property="contato.email"/><br/>
	
	Endereco:
	<html:text property="contato.endereço"/><br/>
	
	<html:submit>Enviar Dados</html:submit><br/>
	
	</html:form>
	
</html:html>

eu sei que o problema esta no cast que esta retornando um null ai ele manda pro metodo addContato os

valores nulos so que nao sei porque isso tah acontecendo o meu mapeamento esta todo correto(ao menos eu

acho que tah :slight_smile: ) nao sei mais o que fazer quem puder me ajudar ai desde jah agradeço!!

Abraço a todos!!

Tente desta forma:

[code] package br.com.caelum.struts.form;

import org.apache.struts.action.*;

import br.com.caelum.jdbc.Contato;

public class ContatoForm extends ActionForm {

 private Contato contato;  
   
 public Contato getContato(){  
       
     return this.contato;  
 }  


 public Contato setContato(final Contato aContato){  
       
     this.contato = aContato;  
 }  

} [/code]

Obs: Não é uma boa prática chamar a camada de persistencia na sua camada de controle, pois assim você está “furando” o MVC.

[code] public class AdicionaContatoAction extends Action {

 @Override  
 public ActionForward execute(ActionMapping map, ActionForm form,   
         HttpServletRequest request, HttpServletResponse response)   
         throws Exception {  
       
     ContatoForm formulario = ((ContatoForm)form);  
       
     Contato contato = formulario.getContato();  
       
    ContatoDAO dao = new ContatoDAO();  
       
     dao.addContato(contato);  
       
     return map.findForward("sucess");  
       
   
 }  

}[/code]

Boa sorte.

Bom teve um erro no qeu tu me deu no metodo setContato vc o definiu como do tipo contato sendo qeu ele nao retorna valor algum!!

Mas como eh qeu ficaria o meu AdicionaContatoAction ?? testei das diversar formas possiveis e nada deu certo!!

E outra eu to aprendendo agora o padrao MVC e por isso gostaria de lhe perguntar como seria ficaria entao a minha classe seguindo esse padrao!!

Pelo qeu eu li a camada de controle nao eh responsavel por fazer a ligaçao entra a view e a model ??

no qeu eu fiz ocorre apenas a chamada ao metodo da classe que realiza a persistencia de dados!!

Bom se eu tiver errado em algum quesito ficarei muito grato se vc me esclarecer as coisas
Valeu Abraço!!!

vamo la galera ninguem tem uma dica ai !??

:cry:

Powww galera ninguem da um chute do que seja o meu problema!!

:cry:

Powww o problema pode ser no meu eclipse??

Nao sei se eu to colocando os .jar certos no build path alguem me ajuda ai!!??

Valeuu!!!