我想在按钮点击时以编程方式重新加载JSF使用的ResourceBundles。类路径中的ResourceBundle(即WEB-INF / classes)由外部应用程序修改,修改事件对我来说是已知的。
答案 0 :(得分:5)
尝试
ResourceBundle.clearCache(Thread.currentThread().getContextClassLoader());
(你可以使用不带参数的相同方法)
来自javadoc
默认情况下,getBundle工厂方法创建的资源包实例会被缓存,如果已缓存,则工厂方法会多次返回相同的资源包实例。 getBundle客户端可以清除缓存,使用生存时间值管理缓存资源包实例的生命周期,或指定不缓存资源包实例。有关详细信息,请参阅getBundle工厂方法,clearCache,ResourceBundle.Control.getTimeToLive和ResourceBundle.Control.needsReload的说明。