Passar parâmetros para arquivo .properties

4 respostas
D

Tem como eu passar algum parâmetro para exibir uma mensagen no arquivo .properties?
Ex.:

messages_pt_BR.properties

total_registros = Foram encontrados {0} registros.

index.xhtml

<h:outputText value="#{msg['total_registros']}" />

Gostaria de passar o total de registros para ser pego no arquivo .properties. É possível isso? Se sim, como ficaria o meu outputText?

4 Respostas

C

Cara… acho que esse link pode te ajudar

http://www.devmedia.com.br/post-6608-JSF-Usando-arquivos-de-propriedades-Resource-Bundle-para-internacionalizacao-de-aplicativos.html

Procura sobre

<h:outputFormat />

M
public class LocaleController {
	private static Locale currentLocale = new Locale("pt","BR");
	
	public String englishLocale() {
		UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
		currentLocale = Locale.US;
		viewRoot.setLocale(currentLocale);
		return null;
	}
	
	public String portugueseLocale() {
		UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
		currentLocale = new Locale("pt","BR");
		viewRoot.setLocale(currentLocale);
		return null;
	}
	
	public Locale getCurrentLocale() {
		return currentLocale;
	}
}
/**
	 * Método que retorna uma String com a mensagem internacionalizada com parametros.<br />
	 * @param property - arquivo onde estão depoisitadas as mensagens.<br />
	 * @param key - chave de identidicação da mensagem.<br />
	 * @param params - parametros que possui na mensagem. <br />
	 * @return
	 */
	public static String getMessage(String property, String key, Object... params) {
		Locale locale = new LocaleController().getCurrentLocale();
		property = property.contains(".properties") ? property.replace(".properties", "") : property;
		ResourceBundle bundle = ResourceBundle.getBundle(property, locale);
		String mensagemParametrizada = MessageFormat.format(bundle.getString(key), params); 
		return mensagemParametrizada;
	}

Veja se isso te ajuda. Flw.

D

Vlw carolino…funcionou direitinho.

Segue o código funcionando caso alguem passe por essa dúvida.

messages_pt_BR.properties

total_registros = Foram encontrados {0} registros.

index.xhtml

<h:outputFormat value="#{msg['total_registros']}">
	<f:param value="#{fn:length(bean.lista)}" />
</h:outputFormat>
C

Boa…

Criado 10 de fevereiro de 2012
Ultima resposta 10 de fev. de 2012
Respostas 4
Participantes 3