[RESOLVIDO] JSF: "Data Nascimento: '04/04/1989' could not be understood as a date."

3 respostas
L

Ao testar desenvolver uma pagina jsf para cadastro de um usuario, me deparei com o seguinte problema:

"Data Nascimento: '04/04/1989' could not be understood as a date."
Aparece em mesmo a data estando preenchida corretamente. Já tentei colocar a data em todos os formatos possíveis : 04/04/1989, 1989/04/04, 04/04/89, 04-04-1989, 1989-04-04, 04-04-89. E quando deixo o campo Data de nascimento em branco obtenho a mensagem dizendo que o campo é requirido (essa sim está vindo corretamente).
Resultado: até agora não consegui testar se o meu DAO, Hibernate, estão funcionando corretamente, pois ao tentar eviar o form, o jsf me retorna o erro no campo data.
obs: no console do eclipse não aparece erro.

usuario.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>Cadastro de Usuários</title>
</h:head>
<h:body>
	<h1>Cadastro de Usuários</h1>
	<hr />
	<h:form id="cadastro">
		<h:messages />
		<h:inputHidden value="#{usuarioBean.usuario.codigo}" />
		<h:inputHidden value="#{usuarioBean.usuario.ativo}" />
		
		<h:panelGrid columns="2">
			<h:outputLabel value="Nome:" for="nome"/>
			<h:inputText id="nome" label="Nome" value="#{usuarioBean.usuario.nome}" size="30" 
				maxlength="30" required="true" requiredMessage="Você não tem nome?">
				<f:validateLength minimum="10" maximum="30" />
			</h:inputText>
			
			<h:outputLabel value="Data Nascimento:" for="data" />
			<h:inputText id="data" label="Data Nascimento" value="#{usuarioBean.usuario.nascimento}" 
				size="10" maxlength="10" required="true">
				<f:convertDateTime dateStyle="medium" />	
			</h:inputText>
			
			<h:outputLabel value="Celular:" for="celular" />
			<h:inputText id="celular" label="Celular" value="#{usuarioBean.usuario.celular}" size="10" />
			
			<h:outputLabel value="e-Mail" for="email" />
			<h:panelGroup>
				<h:inputText id="email" label="e-Mail" value="#{usuarioBean.usuario.email}" 
					size="50" maxlength="50" required="true" validatorMessage="e-mail inválido">
					<f:validateRegex pattern="[a-zA-Z0-9\-\_\.]+@[a-zA-Z0-9\-\_\.]+" />
				</h:inputText>
				<h:message for="email" />
			</h:panelGroup>
			
			<h:outputLabel value="Idioma:" for="idioma" />
			<h:selectOneMenu id="idioma" value="#{usuarioBean.usuario.idioma}">
				<f:selectItem itemValue="pt_BR" itemLabel="Português" />
				<f:selectItem itemValue="en_US" itemLabel="English" />
				<f:selectItem itemValue="es_ES" itemLabel="Espanol" />
			</h:selectOneMenu>
			
			<h:outputLabel value="Login:" for="login" />
			<h:inputText id="login" label="Login" value="#{usuarioBean.usuario.login}" size="15" 
				maxlength="15" required="true" 
				validatorMessage="Login deve ter no minimo 5 e no máximo 15 caracteres e só pode ter os símbolos '.' e '_'.">
				<f:validateRegex pattern="([a-z]|[0-9]|[.]|[.]|[_]){5,15}" />				
			</h:inputText>
			
			<h:outputLabel value="Senha:" for="senha" />
			<h:inputSecret id="senha" label="Senha" value="#{usuarioBean.usuario.senha}" size="10" maxlength="10" required="true" />
			
			
			<h:outputLabel value="Confirmar Senha" for="confirmarsenha" />
			<h:inputSecret id="confirmarsenha" label="Confirmar Senha" value="#{usuarioBean.confirmarSenha}" 
				size="10" maxlength="10" required="true" redisplay="true" />
		</h:panelGrid>
		
		<h:commandButton action="#{usuarioBean.salvar}" value="Salvar" />
	</h:form>
	<hr />
</h:body>
</html>

[img]http://s4.postimage.org/1g8k063tw/Capture.jpg[/img]

Alguem poderia me ajudar URGENTEE.. estou desenvolvendo uma aplicação financeira junto com o livro: programando java para web que por sinal é muito bom, indico para todos que desejam começar no jsf.

Obrigado

3 Respostas

R

troca o convertDateTime para:

<f:convertDateTime pattern="dd/MM/yyyy" />
K

Da uma olhada nesse site, http://www.roseindia.net/jsf/convertDateTime.shtml

desta forma espera a data neste formato, May 14, 2007 2:42:36 PM.

L

Valeu pessoal, funcionou certinho!
Obrigado

Criado 4 de abril de 2011
Ultima resposta 4 de abr. de 2011
Respostas 3
Participantes 3