Como alterar a mensagem do componente h:message?

9 respostas
D

Já procurei em diversos posts sobre o h:message, mas ainda não consegui algum que me diga onde alterar a mensagem que é mostrada na tela caso ocorra algum erro de conversão.

No meu caso eu tenho um h:inputText que assim que o usuário digita um código eu faço uma chamada Ajax e carrega automaticamente todos os dados referente ao código, porém se o usuário digitar um ‘w’ por exemplo, eu gostaria de mostrar a mensagem dizendo para digitar um número. Atualmente a mensagem mostrada é:

j_id53:j_id54:cdAgencia: ‘w’ is not a number. Example: 99

att. Eduardo Cordeiro

9 Respostas

Giulliano

Busque por

Internacionalização + JSF
ou
I18N + JSF

roland

Use validadores. É fácil usar validadores em JSF - basta adicionar as tags dos validadores ao corpo
de uma tag de componente, desta forma:

<h:inputText id=“card” value="#{payment.card}">
<f:validateLength minimum"13"/>
</h:inputText>

Qlqer coisa manda ai

Giulliano

roland:
Use validadores. É fácil usar validadores em JSF - basta adicionar as tags dos validadores ao corpo
de uma tag de componente, desta forma:

<h:inputText id=“card” value="#{payment.card}">
<f:validateLength minimum"13"/>
</h:inputText>

Qlqer coisa manda ai

Cara ele já esta usando validadores…a pergunta é como mudar as mensagens default do JSF… :confused:

roland

Cara o esquema é cabeludo!

Olha só: no teu projeto cria um pacote chamado br.com.algumacoisa.bundle ou alguma coisa parecido,
como tu achares melhor. Dentro deste pacote crie um arquivo Properties com o nome de Mensagens, ou seja,
Mensagens.properties.
No teu IDE em libraries expanda o arquivo JAR chamado jsf-impl.jar.
Vai até o pacote javax.faces e expanda este nó. Abra com um duplo clique o arquivo
Messages.properties. Copia todo o conteúdo e cole no arquivo Mensagens.properties que tu
acabaste de criar.
Então é um abraço. Tu pode traduzir ele por inteiro, ou apenas as mensagens que tu necessita na aplicação.
Ah! Depois de traduzidas as mensagens tu precisa referenciar o caminho do Messages.properties que
acabaste de criar. Para isso abre o faces-config.xml e adicione o caminho assim:


<application>
<message-bundle>
br.com.algumacoisa.bundle.Mensagens
</message-bundle>
</application>

Espero ter ajudado.

thiagowig

Nao precisa traduzir, ja tem pronto

http://fisheye5.atlassian.com/browse/~raw,r=1.1.2.1/javaserverfaces-sources/jsf-api/src/javax/faces/Messages_pt_BR.properties

F

thiagowig:
roland:

Então é um abraço. Tu pode traduzir ele por inteiro, ou apenas as mensagens que tu necessita na aplicação.
Ah! Depois de traduzidas as mensagens tu precisa referenciar o caminho do Messages.properties que
acabaste de criar. Para isso abre o faces-config.xml e adicione o caminho assim:

Nao precisa traduzir, ja tem pronto

http://fisheye5.atlassian.com/browse/~raw,r=1.1.2.1/javaserverfaces-sources/jsf-api/src/javax/faces/Messages_pt_BR.properties

Para isso funcionar, basta colocar este arquivo no diretório do projeto correto?

Não esta funcionando para mim.

Grato.

R

Tem que copiar o .properties no seu projeto e adicionar o seguinte no faces-config.xml

<application>
	<locale-config>
		<default-locale>pt_BR</default-locale>
	</locale-config>
	<message-bundle>
		myPackage.Messages_pt_BR.properties
	</message-bundle>
</application>

Sendo myPackage o package onde você copiou o arquivo.

Mais infos de Messages em JSF:
http://www.laliluna.de/articles/javaserver-faces-message-resource-bundle-tutorial.html

F

Funcionou perfeitamente!

Muito obrigado.

thiagocg

Olá thiagowig, o link que vc passou http://fisheye5.atlassian.com/browse/~raw,r=1.1.2.1/javaserverfaces-sources/jsf-api/src/javax/faces/Messages_pt_BR.properties ñ ta mais no ar, ao menos não consegui acesso hj, vc teria alguma outra fonte onde eu consiga esse arquivo messages.properties em pt_BR?

Grato!

[]'s

Criado 10 de março de 2010
Ultima resposta 1 de out. de 2010
Respostas 9
Participantes 7