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

时间:2010-01-12 09:31:20

标签: java jsf

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

1 个答案:

答案 0 :(得分:5)

尝试

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

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

来自javadoc

  

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