Boa noite pessoal do GUJ, só fera por aqui. Minha dúvida de hoje é a seguinte:
Estou parametrizando as mensagens do meu sisteminha, utilizando o arquivo .properties;
Com isso, irei ter dois arquivos, 1 para ingles e 1 para portugues;
Eu gostaria de colocar as bandeiras(flags) no topo, e ao clicar na flag dos EUA seja utilizado o inglês, e ao clicar na flag do Brasil, utiliza o arquivo .properties em pt_BR.
Como eu posso fazer isso.
obs:existe a tag
<f:view locale="..."> <!-- todo código html aqui --> </f:view>
Em caso de vc precisar emitir uma mensagem dinâmica ou que seja baseado em alguma regra de negócios, enfim, que não seja estático igual um label.
Por exemplo: um botão “Consultar” que traz registros. Caso não tenha nenhum registro, quero que emita uma mensagem “Consulta não retornou valores”, não vou fazer esse if dentro da pagina jsf certo? seria dentro do ManagedBean, nesse caso daria para emitir a mensagem em formato String, mas o messages.properties serve para internacionalizacao, então ao inves de ficar escrevendo strings dentro de codigo java, internacionaliza tudo isso
certo, entao dentro do MB qualquer eu chamaria a função getMessage do LocaleMB?
e como eu coloco a menssagem entro desse outro managed bean? porque no facelet(xhtml) eu uso expresion language #{msgs.tituloPagina} por exemplo. e como faria dentro de uma managed bean, para obter uma mensagem do arquivo .properties?
[code]FacesContext context = FacesContext.getCurrentInstance();
ResourceBundle bundle = ResourceBundle.getBundle(“br.com.resources.messages”, context.getViewRoot().getLocale());
String message = bundle.getString(codigo_do_messages); //captura a mensagem do messages.properties (com o faces-config.xml configurado)
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, message, message)); //emitindo a mensagem na tela [/code]
[quote=igor_ks][code]FacesContext context = FacesContext.getCurrentInstance();
ResourceBundle bundle = ResourceBundle.getBundle(“br.com.resources.messages”, context.getViewRoot().getLocale());
String message = bundle.getString(codigo_do_messages); //captura a mensagem do messages.properties (com o faces-config.xml configurado)
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, message, message)); //emitindo a mensagem na tela [/code][/quote]