sexta-feira, 28 de setembro de 2007

JSF + Message.properties

Opa opa opa

aqui vai um resumão para "internacionalizar" sua aplicação JSF....

vamos partir da postagem "Criando uma aplicação JSF simples" onde tinhamos apenas o web.xml configurado e não havíamos criado o faces.xml ainda.

Vamos adicionar a funcionalidade de messages ao nosso JSF.

primeiro crie um arquivo de properties....
vamos dar um nome novo para ele, algo inovador e motivador
"Messages.properties"

Coloque nele o seguinte conteúdo:

label_bacana=SOU UM LABEL BACANA

massa né? salve este arquivo dentro da pasta WEB-INF/classes para ficar bem localizado...
só fazendo um parênteses aqui, se vc desenvolve vários módulos em um sistema vc pode separar os message.properties dentro de pacotes para facilitar sua vida na hora de dar manutenção...
fechando parênteses.


tá, bonito! e agora como fazer este cara ficar disponível nos meus jsps?

SIMPLESSSSSS, crie um faces.xml dentro do WEB-INF e nele aponte para seu arquivo de properties



<?xml version="1.0"?>

<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd" >

<faces-config>

<application>
<message-bundle>
Messages
</message-bundle>
</application>

</faces-config>



veja que teu arquivo tá nomeado como Messages! nao coloquei o properties....
ahhh tem como configurar locale... mas isso fica pra um outro post ;)

Como eu disse em outro post .... a vida é fácil.... messages tb é fácil :D
só falta configurar o web.xml para carregar este faces.xml

altere o parâmetro javax.faces.CONFIG_FILES da seguinte forma



<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value></param-value>
</context-param>



PRONTOOOO teu sistema de mensagens tá configurado :D

vamos testar para ver se funciona... hmmm esqueci de dizer como usa
uhhuhuuuhuh

vamos criar um index.jsp fora de nosso WEB-INF :)


<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<f:view>
<f:loadBundle basename="Messages" var="msg"/>
<h:outputText value="#{msg.label_bacana}"></h:outputText>
</f:view>


PRONTOOOOOO
agora só acessar seu brinquedinho novo

http://TEU_SERVIDOR:8080/TUA_APLICACAO/app/index.jsp


abraçossss

Nenhum comentário: