Esta clase, que para mayor utilidad será final y se accederá a sus métodos de forma estática. Tendrá dos atributos. Uno es el objeto Locale que permitirá la realización de mensajes para los diferentes idiomas, y otro es el objeto Bundle que contienen la información del fichero con los mensajes a mostrar. Podemos tener un objeto Bundle diferente por cada fichero de propiedades que tengamos, por ejemplo si queremos uno para los mensajes de error y otro para los de información.
/** Fichero con los mensajes de la aplicacion */ private static final ResourceBundle BUNDLE; /** Indicador del lenguaje a usar */ private static final Locale LOCALE;Estas variables las iniciamos de forma estática de la siguiente forma:
static { final FacesContext context = FacesContext.getCurrentInstance(); LOCALE = context.getViewRoot().getLocale(); BUNDLE = context.getApplication().getResourceBundle(context, "msgApp"); }Dentro de la clase creamos un método estático, que nos devuelva el mensaje formateado (en caso de que le pasemos parámetros ) para mostrar por pantalla.
public static String getMessage(final String key, final Object... args) { String retorno = null; if (args == null || args.length == 0) { retorno = BUNDLE.getString(key); }else{ MessageFormat fmt = new MessageFormat(BUNDLE.getString(key)); fmt.setLocale(LOCALE); retorno = fmt.format(args).toString(); } return retorno; }Ahora mostramos como sería una llamada a este método:
MessagesFactory.getMessage("field.requiered", "name");
No hay comentarios:
Publicar un comentario