I have built an application with JSF and all messages issued by the server are localized with resource bundles.
My question is: how to get messages issued in the cli
the wutzebaer answer is right but it has a problem when then the variables of a literal has any dot, like "person.name"
that worked for me, but the netbeans shows this error:
Error: The prefix "c" for the "c: forEach" element is not linked.
cause it had put a JSTL tag insida a script, but it works fine, however
also there is another way to do it
@ManagedBean(name = "ResouceBundle")
@ApplicationScoped
public class ResouceBundle implements Serializable {
private static final long serialVersionUID = 1L; //needed because the bean is application|session|view and it needs to be Serializable
public String msg;
@PostConstruct
public void init() {
this.msg = createResourceBundleJSON("resourceName");
}
public String createResourceBundleJSON(String resourceName) {
FacesContext context = FacesContext.getCurrentInstance();
ResourceBundle bundle = context.getApplication().getResourceBundle(context, resourceName);
JSONObject jsonObj = new JSONObject();
Set keys = bundle.keySet();
for (String key : keys) {
jsonObj.put(key, JSONObject.wrap(bundle.getString(key)));
}
return jsonObj.toString();
}
public String getMsg() {
return msg;
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
}
and then, in the XHTML, just write: