Popular Objeto

3 respostas
R

Galera estou tentando inserir uns dados no Banco mais na hora de popular os objetos o campo data de nascimento esta vindo como null alguém pode ajudar

Minha JSP

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ page errorPage="erro.jsp"%>
<html>
	<head>
		<title>Pagina de Login</title>
	</head>
		<body bgcolor="lightblue">
			<h2 align="CENTER">Cadastrar Clientes</h2>
			<br>
			<br>
			<html:form action="/cliente" method="post">
			<html:hidden property="operacao" value="inserirCliente" />
			<table border=2 align="center">
				<tr>
					<td>Codigo Cliente:</td>
						<td colspan="8"><input type="text" name="clienteTO.codigocli" size="15" /></td>
						<td><font color="red"><html:errors property="error.campoCodigocli" /></font><br>
					</td>
				</tr>
		<tr>
			<td>Nome:</td>
				<td colspan="5"><input type="text" name="clienteTO.nome" size="45" />
				<font color="red"><html:errors property="error.campoNome" /></font><br></td>
						
			<td colspan="2">Data Nascimento</td>
				<td><input type="text" name="clienteTO.DataNascimentoString" size="10" />  <-------------------
				<font color="red"><html:errors property="error.campoDataNascimento" /></font><br>
			</td>
		</tr>

		<tr>
			<td>Endereço:</td>			
				<td colspan="5"><input type="text" name="clienteTO.endereco" size="45" /></td>
				<font color="red"><html:errors property="error.campoEndereco" /><br>
			
			<td>Numero</td>
				<td><input type="text" name="clienteTO.numero" size="5" /> <font color="red">
                                <html:errors	property="error.campoNumero" /><br>
				<td colspan="1">Complemento<input type="text" name="clienteTO.complemento"size="5" /></td>
				<td><font color="red"><html:errors property="error.campoComplemento" /><br>
			</td>
		</tr>
		<tr>
			<td>RG:</td>
				<td colspan="8"><input type="text" name="clienteTO.rg" size="15" /></td>
				<td><font color="red"><html:errors property="error.campoRg" /><br></td>
		</tr>
		<tr>
			<td>CPF:</td>
				<td colspan="8"><input type="text" name="clienteTO.cpf" size="15" /></td>
				<td><font color="red"><html:errors property="error.campoCpf" /><br></td>
		</tr>

		<tr>
			<td>Telefone:</td>
				<td colspan="8"><input type="text" name="clienteTO.telfixo" size="15" /></td>
				<td><font color="red"><html:errors property="error.campoTelfixo" /><br></td>
		</tr>
		<tr>
			<td>Celular:</td>
				<td colspan="8"><input type="text" name="clienteTO.cel" size="15" /></td>
				<td><font color="red"><html:errors property="error.campoCel" /><br></td>
		</tr>
		<tr>
			<td>Bairro:</td>
				<td colspan="8"><input type="text" name="clienteTO.bairro" size="20" /></td>
				<td><font color="red"><html:errors property="error.campoBairro" /><br></td>
		</tr>
		<tr>
			<td>Email:</td>
				<td colspan="8"><input type="text" name="clienteTO.email" size="30" /></td>
				<td><font color="red"><html:errors property="error.campoEmail" /><br></td>
		</tr>
	</table>
	<br>
	<table border=0 align="center">
		<tr>			
			<td><INPUT type="submit" value="Cadastrar"></td>			
			<td><input type="button" value="voltar"	onclick=javascript:window.history.back()></td>
			<td><INPUT TYPE="reset" NAME="limpar" VALUE="Limpar"></td>
		</tr>
	</table>
</html:form>
</body>
</html>

Minha Action

public ActionForward inserirCliente(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)throws Exception {
		
		ClientesDAO clienteDAO = new ClientesDAO();
		ClienteForm ClienteForm = (ClienteForm) form;
		ClienteTO clienteTO = ClienteForm.getClienteTO();
		clienteTO.setDataNascimento(Util.stringToCalendar(clienteTO.getDataNascimentoString())); 
		clienteDAO.insertCliente(clienteTO);
		
		return mapping.findForward("cadSuces");

	}

Meu Form

private String operacao;

	private ClienteTO clienteTO;
	
	
	public ClienteForm() {
		this.clienteTO = new ClienteTO();
		this.listaClientes = null;
	}
	
	public void reset(ActionMapping mapping, HttpServletRequest req) {
		super.reset(mapping, req);
		this.clienteTO = new ClienteTO();
		this.listaClientes = null;
	}

	public ClienteTO getClienteTO() {
		return clienteTO;
	}

	public void setCliente(ClienteTO cliente) {
		this.clienteTO = cliente;
	}
	
	public String getOperacao() {
		return operacao;
	}

	public void setOperacao(String operacao) {
		this.operacao = operacao;
	}

Meu TO

private final String formatoData = new String("dd/MM/yyyy");

private Calendar dataNascimento;

public Calendar getDataNascimento() {
		return dataNascimento;
	}

	public void setDataNascimento(Calendar dataNascimento) {
		this.dataNascimento = dataNascimento;
	}
	
	public String getDataNascimentoString() {
		return Util.calendarToString(this.dataNascimento, formatoData);
	}
	
	public void setDataNascimentoString(String dataNascimento) {
		this.setDataNascimento(Util.stringToCalendar(dataNascimento));  
	}

3 Respostas

H

cara eu não tenho muita ideia do que pode ser isso… mas tenta colocar um breack point no metodo setDataNascimentoString e ve o que o metodo Util.stringToCalendar(dataNascimento) esta retornando… pode ser que ali esteje dando problema… ve o que esta entrando como parametro pra ver se tb esta recebendo certo…
se estiver tudo certo nesse metodo ve o getDataNascimentoString …
mas eu nao consegui entender direito o que vc tentou fazer tendo esses metodos… se vc ja esta setando a data de nascimento no setDataNascimentoString não tem porque vc fazer aquilo na action…

R

Cara eu já fiz isso e esta retornando null alguém mais tem uma ideia ?

não entendo o que esta errado aparentemente esta tudo correto todos os objetos estão sendo populados com exeção da data

que requer uma tratamento mais adequado.

R

Consegui resolver o problema irei postar a solução para que se alguém precisar de um exmplo com o que ai e funcionando

o erro era exatamente onde esta a seta indicado na minha JSP acima no clienteTO esta assim

Private Calendar dataNascimento;

e eu tinha colocado na minha JSP DataNascimento com D maiusculos.

Criado 14 de agosto de 2008
Ultima resposta 15 de ago. de 2008
Respostas 3
Participantes 2