| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/05/2010 16:53:35
|
xxta
JavaBaby
Membro desde: 07/04/2008 13:09:17
Mensagens: 98
Localização: Florianópolis, Campos Novos - SC
Offline
|
Boa tarde, pessoal.
tudo bem?
Então, tentei de todas as formas fazer a validação de um formulário de uma página jsf e não obtive sucesso.
O problema é o seguinte:
Um objeto DAO que tenho na classe que implementa a Validator não é instanciada pelo Spring.
Essa classe chega a ser executada, mas quando chama o método dao.getByLogin(login); me retorna uma exceção de Nullpointer... dizendo que o dao não foi instanciado.
estou a 3 dias tentando resolver e não está facil hehe
O objetivo desta classe é garantir que não possa ser cadastrado dois usuários com o mesmo login.
Alguém tem alguma idéia de como resolver isto?
ps.: posto o código assim que sair do trabalho.
Desde já agradeço o apoio de todos.
|
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/05/2010 08:13:42
|
xxta
JavaBaby
Membro desde: 07/04/2008 13:09:17
Mensagens: 98
Localização: Florianópolis, Campos Novos - SC
Offline
|
Alguém me ajuda
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/06/2010 17:22:22
|
gbvbahia01
Thread.start()
![[Avatar]](/images/avatar/e14122cd6a12903e0fed829048b1769e.jpg)
Membro desde: 21/08/2008 22:24:13
Mensagens: 41
Offline
|
Amigo acabei de descobrir o mesmo roblema,
Você conseguiu resolver?
Aqui eu tive que bolar uma "marreta", estou com pressa e não tenho tempo de pesquisar muito:
Olha o que eu fiz:
Criei um construtor para o Validador:
E chamei o velho e bom ApplicationContext lá dentro, dai foi somente chamar meu DAO, deu certo.
Por favor, se você tiver achado uma forma mais "limpa" de resolver, posta ai...
Valeu
This message was edited 1 time. Last update was at 03/06/2010 17:23:34
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/06/2010 18:30:23
|
SolloS
Thread.start()
Membro desde: 19/03/2007 16:06:20
Mensagens: 26
Offline
|
Bem, eu resolvi isso tornando o meu campo 'username' único e tratando a exceção
O bean DAO de vocês está sendo injetado corretamente pelo Spring? Postem seus applications e faces xml's para darmos uma olhada na situação.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/06/2010 11:44:39
|
xxta
JavaBaby
Membro desde: 07/04/2008 13:09:17
Mensagens: 98
Localização: Florianópolis, Campos Novos - SC
Offline
|
Seguem os arquivos: ApplicationContext, Faces-config e o meu validator
Obrigado.
Abraços
ApplicationContext.xml
Faces-config.xml
Classe que implementa o validator
gbvbahia01 wrote:Amigo acabei de descobrir o mesmo roblema,
Você conseguiu resolver?
Aqui eu tive que bolar uma "marreta", estou com pressa e não tenho tempo de pesquisar muito:
Olha o que eu fiz:
Criei um construtor para o Validador:
E chamei o velho e bom ApplicationContext lá dentro, dai foi somente chamar meu DAO, deu certo.
Por favor, se você tiver achado uma forma mais "limpa" de resolver, posta ai...
Valeu
Caso eu não encontre outra solução acho que vou utilizar esta mesmo, amigo. Tenho 1 semana para terminar meu tcc não tá fácil! heuheu
Obrigado pela ajuda.
Abraços
This message was edited 1 time. Last update was at 04/06/2010 11:47:28
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/06/2010 14:05:03
|
SolloS
Thread.start()
Membro desde: 19/03/2007 16:06:20
Mensagens: 26
Offline
|
Declara seu validator lá no applicationContext também, o SpringbeanFacesELResolver chama do contexto do spring a injeção. Se não tiver o validator lá, ele não receberá as injeções. Dá uma testada aí e me diz se funcionou.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/06/2010 16:02:14
|
gbvbahia01
Thread.start()
![[Avatar]](/images/avatar/e14122cd6a12903e0fed829048b1769e.jpg)
Membro desde: 21/08/2008 22:24:13
Mensagens: 41
Offline
|
gbvbahia01 wrote:Amigo acabei de descobrir o mesmo roblema,
Você conseguiu resolver?
Aqui eu tive que bolar uma "marreta", estou com pressa e não tenho tempo de pesquisar muito:
Olha o que eu fiz:
Criei um construtor para o Validador:
E chamei o velho e bom ApplicationContext lá dentro, dai foi somente chamar meu DAO, deu certo.
Por favor, se você tiver achado uma forma mais "limpa" de resolver, posta ai...
Valeu
Bom, deu certo em partes, tipo: o dao foi criado com sucesso, mas quando coloquei a aplicação no ar e comecei a testar, da problema... O Spring meio que não está conseguindo gerenciar o entitymanager e ele acaba fechando e/ou a aplicação da problema de falta de memória... Deste jeito, que eu falei, deu mo bode aqui
Com o EJB dá o mesmo problema, mas dá para resolver, com Spring não consegui achar solução, olha que já fui em vários posts...
This message was edited 5 times. Last update was at 04/06/2010 16:09:44
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/06/2010 18:11:34
|
xxta
JavaBaby
Membro desde: 07/04/2008 13:09:17
Mensagens: 98
Localização: Florianópolis, Campos Novos - SC
Offline
|
SolloS wrote:Declara seu validator lá no applicationContext também, o SpringbeanFacesELResolver chama do contexto do spring a injeção. Se não tiver o validator lá, ele não receberá as injeções. Dá uma testada aí e me diz se funcionou.
Declararia como um bean normal?
Tipo assim:
?
Obrigadoooo!!
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/06/2010 20:04:44
|
SolloS
Thread.start()
Membro desde: 19/03/2007 16:06:20
Mensagens: 26
Offline
|
Sim sim, dessa forma mesmo xxta.
Como procedeu aí?
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/06/2010 10:21:28
|
xxta
JavaBaby
Membro desde: 07/04/2008 13:09:17
Mensagens: 98
Localização: Florianópolis, Campos Novos - SC
Offline
|
Não deu certo...
depois tentei retirar o trecho abaixo do faces-config.xml mas também não adiantou:
to achando que essa nao é a forma certa de utilizar o spring em um validator, acho que existe uma classe validator do spring...
vou dar uma procurada e caso apareçam mais dúvidas ou encontre a solução posto aqui!
Obrigado a todos!
abraços
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 12:48:41
|
hopster
Thread.start()
![[Avatar]](/images/avatar/c4525d4b0ad85bb7ed6e5f31fbe008ce.jpg)
Membro desde: 04/08/2006 00:29:22
Mensagens: 46
Localização: Floripa / SC!
Offline
|
po cara... acho q vc nao ta certo
hehehehe
|
yeah! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 13:39:45
|
xxta
JavaBaby
Membro desde: 07/04/2008 13:09:17
Mensagens: 98
Localização: Florianópolis, Campos Novos - SC
Offline
|
hopster wrote:po cara... acho q vc nao ta certo
hehehehe
e como é o certo?
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 13:51:11
|
gbvbahia01
Thread.start()
![[Avatar]](/images/avatar/e14122cd6a12903e0fed829048b1769e.jpg)
Membro desde: 21/08/2008 22:24:13
Mensagens: 41
Offline
|
xxta wrote:Não deu certo...
depois tentei retirar o trecho abaixo do faces-config.xml mas também não adiantou:
to achando que essa nao é a forma certa de utilizar o spring em um validator, acho que existe uma classe validator do spring...
vou dar uma procurada e caso apareçam mais dúvidas ou encontre a solução posto aqui!
Obrigado a todos!
abraços
Não tem como fazer IOC nos validadores e conversores do JSF(1.2), não dá!
Pesquisei muito e até na documentação existe essa informação, por isso temos que esquecer esta forma... mas tem uma segunda opção:
O que pode ser feito neste caso é utilizar um validator dentro do bean, na tag JSF em vez de utilizar o
utilize a chamada
O método utilizado no bean deve ser idêntico ao método que é utilizado na classe validador.
Sem retorno, recebendo os mesmos parâmetros e se houver erros lançar a ValidatorException da mesma forma.
O acredito que o mesmo pode ser feito com converter, já que um converter também pode ser indicado na tag da mesma forma que o validator.
OBS:
1. Não há necessidade de implementar a interface validador no bean.
2. Não há necessidade de por o bean como validator no faces-config.xml, somente a declaração normal do bean.
This message was edited 1 time. Last update was at 17/06/2010 13:52:31
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 16:19:20
|
xxta
JavaBaby
Membro desde: 07/04/2008 13:09:17
Mensagens: 98
Localização: Florianópolis, Campos Novos - SC
Offline
|
gbvbahia01 wrote:
xxta wrote:Não deu certo...
depois tentei retirar o trecho abaixo do faces-config.xml mas também não adiantou:
to achando que essa nao é a forma certa de utilizar o spring em um validator, acho que existe uma classe validator do spring...
vou dar uma procurada e caso apareçam mais dúvidas ou encontre a solução posto aqui!
Obrigado a todos!
abraços
Não tem como fazer IOC nos validadores e conversores do JSF(1.2), não dá!
Pesquisei muito e até na documentação existe essa informação, por isso temos que esquecer esta forma... mas tem uma segunda opção:
O que pode ser feito neste caso é utilizar um validator dentro do bean, na tag JSF em vez de utilizar o
utilize a chamada
O método utilizado no bean deve ser idêntico ao método que é utilizado na classe validador.
Sem retorno, recebendo os mesmos parâmetros e se houver erros lançar a ValidatorException da mesma forma.
O acredito que o mesmo pode ser feito com converter, já que um converter também pode ser indicado na tag da mesma forma que o validator.
OBS:
1. Não há necessidade de implementar a interface validador no bean.
2. Não há necessidade de por o bean como validator no faces-config.xml, somente a declaração normal do bean.
Obrigado, gbvbahia01.
Vou testar qdo chegar em casa!!
No momento estou utilizando da forma acima, usando o validator normal e verificando no método validate se o dao for nulo busco a informação no XML, pois se deixasse no construtor estourava a memória pq ele era instanciado toda vez que era solicitada uma validação:
Apresento amanhã o TCC e como está funcionando não sei se vou alterar no projeto em si, mas vou testar.
Após a apresentação faço as devidas correções e posto o resultado
Muito obrigado!
abraços
|
 |
|
|
 |
|
|