Struts 1.x + Date

Galera estou tendo um problemao aqui, estou tendo que fazer um formulario de cadastro em struts 1.
estou consguindo inserir numa boa se no meu bean (FormBean) nao tiver um bendito campo do tipo Date.

mas detalhe… minha classe tem.

meu codigo está assim:

package br.com.escola.web.bean;

import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.apache.struts.action.ActionForm;

@Entity
@Table(name="aluno")
public class Aluno extends ActionForm implements Serializable{

		private static final long serialVersionUID = 1L;
		@Id
		@GeneratedValue(strategy=GenerationType.AUTO)
		private int codigo;
		private String Nome;
		private String endereco;
		private String bairro;
		private String cidade;
		private String estado;
		private Date nascimento;
		private String cpf;
		private String situacao;
		
		private SimpleDateFormat formatador;
		
		public Aluno() {
			
		}

		public final int getCodigo() {
			return codigo;
		}

		public final void setCodigo(int codigo) {
			this.codigo = codigo;
		}

		public final String getNome() {
			return Nome;
		}

		public final void setNome(String nome) {
			Nome = nome;
		}

		public final String getEndereco() {
			return endereco;
		}

		public final void setEndereco(String endereco) {
			this.endereco = endereco;
		}

		public final String getBairro() {
			return bairro;
		}

		public final void setBairro(String bairro) {
			this.bairro = bairro;
		}

		public final String getCidade() {
			return cidade;
		}

		public final void setCidade(String cidade) {
			this.cidade = cidade;
		}

		public final String getEstado() {
			return estado;
		}

		public final void setEstado(String estado) {
			this.estado = estado;
		}

		public final String getNascimento() {
           formatador = new SimpleDateFormat("dd/MM/yyyy");
			
			return formatador.format(this.nascimento);
		}
             
               //até tentando realizar a conversao nos getters e setters ele da exception ao abrir o JSP 
		public final void setNascimento(String nascimento) throws ParseException {
			formatador = new SimpleDateFormat("dd/MM/yyyy");
			this.nascimento = formatador.parse(nascimento);
		}
		
		


		public final String getCpf() {
			return cpf;
		}

		public final void setCpf(String cpf) {
			this.cpf = cpf;
		}

		public final String getSituacao() {
			return situacao;
		}

		public final void setSituacao(String situacao) {
			this.situacao = situacao;
		}

		public static final long getSerialversionuid() {
			return serialVersionUID;
		}

		
		
		
		
		

}

package br.com.escola.web.controller;

import java.text.ParseException;
import java.util.List;

import br.com.escola.web.bean.Aluno;
import br.com.escola.web.dao.AlunoDAO;

public class AlunoController {

	public AlunoController() {
		// TODO Auto-generated constructor stub
	}
	
	public boolean gravaAluno(String nome, String endereco, String bairro,
			String cidade, String estado, String nascimento, String cpf,
			String situacao) throws ParseException
	{
		AlunoDAO dao = new AlunoDAO();
		Aluno obj = new Aluno();
		obj.setNome(nome);
		obj.setEndereco(endereco);
		obj.setBairro(bairro);
		obj.setCidade(cidade);
		obj.setEstado(estado);
		obj.setNascimento(nascimento);
		obj.setCpf(cpf);
		obj.setSituacao(situacao);
		return dao.insert(obj);
	}
	
	public boolean atualizaAluno(int codigo, String nome, String endereco, String bairro,
			String cidade, String estado, String nascimento, String cpf,
			String situacao) throws ParseException
	{
		AlunoDAO dao = new AlunoDAO();
		Aluno obj = new Aluno();
		obj.setCodigo(codigo);
		obj.setNome(nome);
		obj.setEndereco(endereco);
		obj.setBairro(bairro);
		obj.setCidade(cidade);
		obj.setEstado(estado);
		obj.setNascimento(nascimento);
		obj.setCpf(cpf);
		obj.setSituacao(situacao);
		return dao.update(obj);
	}
	
	public boolean deletaAluno(int codigo)
	{
		AlunoDAO dao = new AlunoDAO();
		Aluno obj = dao.getById(codigo);
		return dao.delete(obj);
	}
	
	public List<Aluno> getAll()
	{
		AlunoDAO dao = new AlunoDAO();
		return dao.getTodos();
	}
	
	public Aluno getAluno(int id)
	{
		AlunoDAO dao = new AlunoDAO();
		return dao.getById(id);
	}
	
}
package br.com.escola.web.dao;



import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import br.com.escola.web.bean.Aluno;
import br.com.escola.web.util.EntityManagerUtil;

public class AlunoDAO {
	
	public AlunoDAO() {
		// TODO Auto-generated constructor stub
	}
	
	public boolean insert(Aluno obj)
	{
		new EntityManagerUtil();
		EntityManager em = EntityManagerUtil.getEntityManager();
		EntityTransaction t = em.getTransaction();
				
		try
		{
			t.begin();
			em.persist(obj);
			t.commit();
			return true;
		}catch(Exception e)
		{
			e.printStackTrace();
			t.rollback();
			return false;
		}
		finally
		{
			if(em.isOpen())
			{
				em.close();
			}
		}
		
	}

	public boolean update(Aluno obj)
	{
		EntityManager em = EntityManagerUtil.getEntityManager();
		EntityTransaction t = em.getTransaction();
		
			try{
					t.begin();
					em.merge(obj);
					t.commit();
					return true;
			   }
			catch(Exception e)
				{
				 	e.printStackTrace();
				 	t.rollback();
				 	return false;
				}
			finally
				{
					if(em.isOpen())
					{
						em.close();
					}
				}
	}
	
	public boolean delete(Aluno obj)
	{
		EntityManager em = EntityManagerUtil.getEntityManager();
		EntityTransaction t = em.getTransaction();
			
		try{
			t.begin();
			em.remove(obj);
			t.commit();
			return true;
	       }
		catch(Exception e)
		   {
		 	e.printStackTrace();
		 	t.rollback();
		 	return false;
		   }
		finally
			{
				if(em.isOpen())
				{
					em.close();
				}
			}
	}

	@SuppressWarnings("unchecked")
	public List<Aluno> getTodos()
	{
		Session sessao = (Session)EntityManagerUtil.getEntityManager().getDelegate();
		
		@SuppressWarnings("rawtypes")
		List list = sessao.createCriteria(Aluno.class).list();
		return list;
	}
	
	public Aluno getById(int id)
	{
		Session sessao = (Session)EntityManagerUtil.getEntityManager().getDelegate();
		return (Aluno)sessao.createCriteria(Aluno.class).add(Restrictions.eq("codigo", id)).uniqueResult();
	}
	
}

package br.com.escola.web.action;

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;
import org.apache.struts.actions.DispatchAction;

import br.com.escola.web.bean.Aluno;
import br.com.escola.web.controller.AlunoController;


public class AlunoAction extends DispatchAction{

	//private static final String SUCCESS = "success";
	//private static final String FAILED = "failed";
	
	public ActionForward insert(ActionMapping arg0, ActionForm arg1,
			HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
		
		Aluno obj = (Aluno)arg1;
		AlunoController control = new AlunoController();
		//quando eu coloco um data fixa aqui ele vai , mas quando faço obj.getNascimento() ele da exception
		if(control.gravaAluno(obj.getNome(), obj.getEndereco(), obj.getBairro(), obj.getCidade(),
				obj.getEstado(), "20/06/1992", obj.getCpf(), obj.getSituacao()))
		{
			return arg0.findForward("inserido");
		}else
		{
			return arg0.findForward("erro_inserir");
		}
		
		
	}
	
	
	public ActionForward novo(ActionMapping arg0, ActionForm arg1,
			HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
		
		return arg0.findForward("novo");
		
	}
	
}

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %> 
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>    
<!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">
<title>Cadastro de Alunos</title>
</head>
<body>
Cadstro de alunos
<br/>
<hr/>
<br/>
<html:form action="Aluno">
<html:hidden property="method" value="insert"/>
Nome: <html:text property="nome"/><br/>
Endereço: <html:text property="endereco"/><br/>
Bairro: <html:text property="bairro"/><br/>
Cidade: <html:text property="cidade"/><br/>
Estado: <html:text property="estado"/><br/>
<!-- Quando eu coloco a data fixa na action eu removo a tag abaixo-->
Data de Nascimento (00/00/0000)<html:text property="nascimento"/><br/>
CPF: (Sem formatação)<html:text property="cpf"/><br/>
Situação: <html:select property="situacao">
		  	<html:option value="AT">Ativo</html:option>
		  	<html:option value="IN">Inativo</html:option>
		  </html:select>
<html:submit value="ok"/>
</html:form>
</body>
</html>

peço a ajuda de todos que puderem me ajudar,pois necessito disso o mais rapido possivel.

Obs: Nunca trabalhei direito com Struts 1 só com o 2 e JSF

Agradeço a todos.

Grato

E qual erro que ele apresenta?

antes quando os getters e setter eram Date ele dava incompatibilidade de tipos.

agora com os getters e setters como String ele diz que o atributo nascimento nao existe no Bean…

Vc teria algum exeplo de um formulario struts que insira em um campodo tipo Date ???

Grato.

Obs:. estou no trabalho agora, quando eu chegar em casa eu mando o erro com mais detalhes.

veja acima a imagem do erro…
para mais detalhes segue o link da imagem

http://img440.imageshack.us/img440/8148/tomcat.png

ninguem ???

o erro postado acima foi outro que deu aqui… mas ja resolvi ambos.

agradeço a quem respondeu.

Grato