Mensagens parametrizadas JSF 20

1 resposta
I

Pessoal, estou com uma dúvida em como chamar uma mensagem parametrizada a partir do bean gerenciado.
Consegui chamar uma mensagem simples do arquivo de propriedade usando a senguite sintaxe:

public void carregarMensagem(){

mostrar = true;

FacesContext context = FacesContext.getCurrentInstance();

String mensagem = carregarMensagemDeArquivo(SUCESSO); //percebam que aqui eu chamo minha chave SUCESSO do arq. de Propriedade que o valor é uma mensagem qualquer. Isso funciona perfeitamente.

FacesMessage m = new FacesMessage(mensagem);

context.addMessage(null, m);

}

public String carregarMensagemDeArquivo(String chave) {

FacesContext context = FacesContext.getCurrentInstance();

ResourceBundle bundle = ResourceBundle.getBundle(context.getApplication().getMessageBundle()

String text = “”;

try {

text = bundle.getString(chave);
} catch (MissingResourceException e) { 
        text = "chave" + chave + "nao foi encontrada"; 
    }
    return text;

}

O porém agora é saber como chamar a partir do beans a chave sucesso estando parametrizada da seguinte maneira:

SUCESSO={0, choice, 0#Usuário|1#Professor|2#Aluno} cadastrado com sucesso.

alguém pode me ajudar???

1 Resposta

I

package beans;

import java.util.Locale;

import javax.faces.application.FacesMessage;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.RequestScoped;

import javax.faces.context.FacesContext;

@ManagedBean
@RequestScoped
public class beans {

public beans(){
}

public void testar(){
    FacesContext context = FacesContext.getCurrentInstance();

    String mensagem = carregarMensagemDeArquivo("SUCESSO", 0);
    FacesMessage m0 = new FacesMessage(mensagem);
    context.addMessage(null, m0);
    mensagem = "";

    mensagem = carregarMensagemDeArquivo("SUCESSO", 1);
    FacesMessage m1 = new FacesMessage(mensagem);
    context.addMessage(null, m1);
    mensagem = "";

    mensagem = carregarMensagemDeArquivo("SUCESSO", 2);
    FacesMessage m2 = new FacesMessage(mensagem);
    context.addMessage(null, m2);
    mensagem = "";

}

public String carregarMensagemDeArquivo(String chave, int esc) {
    //código pra carregar e retornar texto da chave do arquivo Mensagens
    FacesContext context = FacesContext.getCurrentInstance();
    Locale myLocale = context.getViewRoot().getLocale();
    String text = LocaleHelper.getLocaleString(context.getApplication().getMessageBundle(), chave , new Integer[]{new Integer(esc)}, myLocale);
    return text;
}

}

olha aí pessoal… consegui tirar minha dúvida…

Criado 2 de novembro de 2010
Ultima resposta 2 de nov. de 2010
Respostas 1
Participantes 1