Mensagens i18n no Controller do vRaptor 3  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Olhei a documentação mas não achei nada direto que me explica como pegar uma mensagem i18n dentro de um Controller do vRaptor 3.

Só achei referência usando um Validator, que não é o meu caso.

Algo que eu possa injetar no Controller para me dar esta informação que configura no messages.properties?

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Bom, fiz uma gambiarra aqui e funcionou no meu caso.





Mas ainda procuro a solução correta.

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
cinei
JavaChild

Membro desde: 25/03/2007 19:40:46
Mensagens: 101
Offline

assim ajuda, independente do VRaptor?
garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

Você pode injetar br.com.caelum.vraptor.core.Localization no seu controller, e ter acesso aos métodos localizados, por exemplo, getMessage(String, Object...)

This message was edited 1 time. Last update was at 01/04/2011 19:45:03


http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum.
guivirtuoso
JavaTeenager
[Avatar]

Membro desde: 05/04/2006 23:52:21
Mensagens: 185
Localização: Florianópolis - SC
Offline

Fala Daniel,

Eu achei a sua implementação muito legal e utilize junto com uma implementação sugerida pelo Lucas Cavalcanti.

o Lucas sugeriu a implementação de um CustomValidator, que retornaria uma chave Internacionalizada, no lugar apenas do nome da Field no caso do Hibernate Validator...

Dessa forma, a categoria estava ficando assim: "produto.nome" ao invés só de "nome", como é o padrão.

Modelo:


CustomValidator.java


Dai precisei pegar no meu até então ValidationMessages.properties o valor da chave e p/ isso tentei implementei a sua classe sugerida.

Porem p/ dar tudo certo tive que desmembrar meu arquivo properties, ficando:
ValidationMessages_pt_BR.properties : Mensagens de validação


messages.properties : Descrição dos atributos das entidades


Sua Implementação:



Classe CustomValidator com algumas alterações p/ receber a injeção de dependencia no I18nMessages



Dessa forma, tanto o nome do atributo como a mensagem utilizada na validação vem do arquivo properties.

Queria saber se existe uma forma mais usual de implementar esta solução ou se o caminho é por ai mesmo....

Vlw..

This message was edited 1 time. Last update was at 22/09/2011 01:04:54


Guilherme H. F. Virtuoso
Florianópolis - SC

@virtuosoBR
[Email] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Online

não precisa disso tudo.. pra pegar uma mensagem internacionalizada é só receber o Localization no construtor,
e usar:


--
Caelum
www.caelum.com.br

guivirtuoso
JavaTeenager
[Avatar]

Membro desde: 05/04/2006 23:52:21
Mensagens: 185
Localização: Florianópolis - SC
Offline

Poiseh,

Acabei tirando a classe do nosso amigo Daniel, e utilizei diretamente a Localization que vem no construtor do CustomValidator.

vlw pelos toques...

Guilherme H. F. Virtuoso
Florianópolis - SC

@virtuosoBR
[Email] [MSN]
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team