| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 14:23:11
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
Tenho uma entidade, digamos Pessoa, com uma enum com o nome UnidadeFederacao. O VRaptor não consegue preencher o parâmetro com o valor vindo do formulário, pois, pelo trace, ele está tentando criar uma instância da enum via construtor.. 8|
Como faço para passar um bean, contendo uma enum como atributo, como argumento para o método do controller?
JSP
stack
|
@seufagner
seufagner.com.br
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 15:42:49
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline
|
acabei de testar aqui com um enum qualquer e funcionou...
tem certeza que o erro deu por causa do enum?
Vc tá referenciando o enum pela classe do enum mesmo?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 15:50:09
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
Sim, estou passando um lista de instancias para o JSP via UnidadeFederacao.values()
Iterando no JSP:
stack inteira
|
@seufagner
seufagner.com.br
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 15:54:49
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline
|
a propriedade que vc quer setar é advogado.endereco.estado...
esse erro pode ter acontecido ao tentar instanciar advogado, ou endereco ou estado... algum deles não tem construtor padrão? ou tem alguma coisa de diferente?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 16:00:46
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
Exatamente.
Todos eles tem o construtor padrão indiretamente, já que não possui nenhum outro (o compilador gera pra mim o contrutor default).
|
@seufagner
seufagner.com.br
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 16:09:12
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline
|
posta a classe UnidadeFederacao plz
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 16:13:37
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
|
@seufagner
seufagner.com.br
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 16:25:16
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline
|
usando exatamente essa classe funcionou aqui...
tenta receber a UF direto no método do controller...
e no select
exatamente isso funcionou aqui...
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 16:43:00
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
entendi.. entao é uma exigencia do VRaptor?
ele deve usar os conversores quando injeta no metodo exatamente o tipo da enum. é isso?
agora imagina uma entidade que tem uns 7 enums diferentes? vou declarar todos no metodo?
estou divagando aqui sobre como o vraptor se comporta, populando o bean. ele vai aplicando conversores ao navegar no grafo da entidade? ou quando injeta no metodo?
|
@seufagner
seufagner.com.br
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 16:50:46
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline
|
então... não precisa receber a enum no método e não deve fazer isso... funciona dentro de uma classe tb...
sempre que o tipo desejado é uma enum, mesmo no grafo da entidade, ele usa o converter de enum...
eu pedi pra vc testar de colocar num método pra entender melhor o problema...
Nos seus getters e setters vc tá referenciando o tipo exato da enum?
aqui eu criei:
recebi isso no método e tb funcionou...
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 16:55:20
|
seufagner
JavaEvangelist
![[Avatar]](/images/avatar/5fd0245f6c9ddbdf3eff0f505975b6a7.jpg)
Membro desde: 06/05/2005 16:33:09
Mensagens: 447
Localização: Rio de Janeiro - RJ
Offline
|
entendi.. mas aí cai no mesmo problema das "7 enums" que citei... eu teria que ter as 7 enums declaradas como atributo e seus getters e setters tambem, e dentro de cada metodo que va utiliza-las eu ter que dar um set na entidade que as contem com o valor capturado do jsp.
não é possível eu declarar apenas a entidade Advogado? que tem Endereco e por sua vez a famigerada UnidadeFederacao ?
|
@seufagner
seufagner.com.br
"Simplicidade é a maior forma de sofisticação"
Leonardo Da vinci
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2010 19:43:35
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline
|
sim, é possível... se funciona no primeiro nível, funciona em todos os outros...
e o enum como atributo e getters e setters têm que estar dentro das entidades mesmo, não no controller
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/02/2010 09:49:29
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Só para acrescentar, eu uso muitos enums em meus projetos e todos funcionam muito bem com o vraptor, tanto como propriedades na classe como enviando como parametro do método.
Meus enums são da mesma forma que o seu, usando no caso um chave e valor. Estou usando vraptor 3.1, porém desde o 3.0-beta tem funcionando muito bem.
Analisando tuas classes, você está usando advogado.endereco.estado como nome do campo. Teu método possui o advogado como parametro e esse objeto possui mesmo um endereco.estado, sendo esse estado o enum?
Qual o valor que você está imprimindo em <option value="${uf}">${uf}</option>? Será que está mesmo sendo impresso RS ou "Rio Grande do Sul"? Caso for o segundo creio que a injeção não funcione, pois a inicialização dos enums é via Enum.name().
Abraços
|
|
|
 |
|
|