[RESOLVIDO] VRaptor + Hibernate + Html5 - Atributo do tipo date
26 respostas
C
clarel.filho
Boa tarde, estou com o seguinte problema:
Vou começar a usar date somente agora, então não possuo muito conhecimento… primeiro… escrevi ele da seguinte forma na minha classe de modelo e com os seguintes imports:
Se eu colocar uma data manualmente através do banco de dados, quando acesso a entidade na jsp ele trás a data corretamente no meu input.
Mas quando ele vai fazer o updade, eu tendo mudado ou não a data (estou usando datepicker do html 5)
ele da a seguinte msg de erro:
mas a entidade é private, então quando faço o get para testar o que ele está recebendo… o resultado é null.
Não sei onde posso tratar a data, alguém tem alguma solução?
Pode me mostrar como que a data fica no seu input?
C
clarel.filho
Quando ela vem do banco, ou selecione pelo calendário ele exibe no input da seguinte forma: dd/mm/aaaa
Mudei para calendar, mas deu o mesmo erro.
R
Rafael_Guerreiro
Tira o input do HTML 5… Trate essa data como um texto e envie pro servidor nesse formato…
C
clarel.filho
Ai que está, eu gostaria de manter o input date do html5…
R
Rafael_Guerreiro
Isso é só para fazermos um teste e conseguirmos descobrir o erro…
C
clarel.filho
Com String funciona normalmente… só não queria deixar String porque acho errado… acho que este atribute deve ser do tipo date mesmo…
C
clarel.filho
com input type text, e atributo tipo Date…
digitei da mesma forma que ele gravava no banco "2013-03-13"
mas deu o mesmo erro
R
Rafael_Guerreiro
Digita ela no formato normal dd/MM/yyyy
Usa o tipo Calendar no java e o type=“text” no input…
C
clarel.filho
Digitei da forma que você falou, e salvou certo… quando fui na pagina de edição, ele estava aaaa/mm/dd
Estou bem perdido sobre o que está acontecendo
R
Rafael_Guerreiro
Acontece o seguinte: quando enviamos a data do formulário para o servidor, ele vai como String, ai o VRaptor usa um converter de Calendar para decifrar a String que você está mandando.
Essa mensagem de erro: "???is_not_a_valid_date??? " é do converter do VRaptor. Ou seja, a data está vindo em um formato diferente do esperado: “dd/MM/yyyy”.
Veja se o input date do HTML5 não tem um campo pattern que muda a forma como a data é enviada ao server.
Quando você volta do servidor para o browser, o ideal é que você retorne a data como String já no formato certo…
PS: Use o tipo Calendar na sua entity e retire o @Type…
C
clarel.filho
Tem alguma forma de eu reescrever o converter do vraptor?
R
Rafael_Guerreiro
Tem. Basta criar uma classe e chamar de CalendarConverter, implemente-a com a interface Converter<Calendar> do VRaptor…
E anote com @Convert(Calendar.class).
Dai vc vai receber uma String, nessa string tem a sua data vinda do browser.
Faça a conversão e retorne para o VRaptor que ele cuida do resto…
Vale lembrar que você pode receber o que precisar no construtor do converter que a DI também vale para converters.
C
clarel.filho
Muito obrigado, não conheço muito de orientação a objetos e por isso não sabia como fazer, mas sabia que era possível…
Vou tentar resolver aqui, qualquer coisa posto o que eu preciso de ajudo, ou o metodo como resolvi…
obrigado!
R
Rafael_Guerreiro
Dê uma estudada sobre o java, estude, também, a apostila FJ-28, ajuda bastante…
nossa, vou fazer assim então… melhor ainda…
valeu, obrigado!
R
Rafael_Ferraro
Rafael Guerreiro ou Clarel.filho me ajudem ! haha
Estava ocorrendo um erro parecido comigo, eu inseria meu valor no campo de data, mostrava meu valor sendo passado através da uri, mas na hora de manda o valor para o atributo(seta-lo) o atributo recebia null. Ai inseri o tal locale pt-Br no meu web.xml , e o erro agora é o seguinte !
No meu atributo eu recebo o valor " (java.util.Date) Sat Oct 12 00:00:00 BRT 1991 "
Mas na hora de salvar é gerado uma exception na minha página
Outra coisa, acho estranho ele estar passando este valor para o atributo, pq o valor que passo é dd/MM/yyyy
isso não tem a ver com a seralização, é conflito de versão de jars…
dá uma olhada se vc não tem jars do hibernate com versões diferentes no classpath.
R
Rafael_Ferraro
Lucas desculpa utilizar mais de um tópico, vou utilizar apenas este pois o problema é o mesmo que estou passando !
Os jars do hibernate foram inseridos na biblioteca através do netbeans, inseri apenas o hibernate.validator 3.1, vou retira-lo agora e fazer mais um teste para ver o que acontece.
Ja volto com a resposta !!!
R
Rafael_Ferraro
Aeeeeeeee !!! Agora sim ! hahahahaha.
Cara mas por qual motivo não consigo utilizar o jar do hibernate.validator então ? Pelo menos as validações ele estava fazendo da maneira correta, validava email, cpf, valores nulos. É uma pena não poder utilizar ele ! Mas pelo menos está salvando ! Obrigado pela paciência e colaboração Lucas ! Desculpa qualquer coisa !
L
Lucas_Cavalcanti
vc pode usar ele sim, mas vc precisa usar uma versão compatível com o hibernate-core que vc tá usando…
tente usar o hibernate validator 4
R
Rafael_Ferraro
A não cara ele valida sim, nas bibliotecas que o netbeans fornece já deve possuir o jar para validação, por isso estava dando conflito, eu estava inserindo outro jar. Voce tinha toda razão mesmo.
segue os importes das validações.
Mas enfim, obrigado mais uma vez ! Estava matando cachorro a grito com isso !
Agora vou terminar de estudar esta apostila da caelum pra dar continuidade no meu tcc, até lá vou voltar aqui algumas vezes srrs