如何重新加载JSF使用的ResourceBundle?

我想通过点击按钮以编程方式重新加载JSF使用的ResourceBundles。 类路径中的ResourceBundles(即WEB-INF / classes)由外部应用程序修改,修改事件对我来说是已知的。

尝试

ResourceBundle.clearCache(Thread.currentThread().getContextClassLoader()); 

(你可以使用不带参数的相同方法)

来自javadoc

默认情况下,getBundle工厂方法创建的资源包实例会被缓存,如果已缓存,则工厂方法会多次返回相同的资源包实例。 getBundle客户端可以清除缓存,使用生存时间值管理缓存资源包实例的生存期,或指定不缓存资源包实例。 有关详细信息,请参阅getBundle工厂方法,clearCache,ResourceBundle.Control.getTimeToLive和ResourceBundle.Control.needsReload的说明。