我们使用fmt:setBundle从数据库加载资源包(我们扩展了ResourceBundle类来做到这一点).当我们修改数据库中的值时,我们必须重新加载Web服务器以在Web应用程序上显示新值.
有没有简单的方法来使用新值而无需重新启动Web服务器?
(我们不希望总是仰望从数据库的价值,但我们希望通过调用一个特殊的"管理员"的URL缓存失效,例如)
编辑:我们正在使用JDK 1.4,所以我更喜欢该版本的解决方案.:)
我正在寻找一种方法来在JSP页面输出时将字符串计算为el.(我想当它的toString()方法在引擎盖下调用???)
例如,在我的页面中,如果我这样做:
<title>${bean.title}</title>
Run Code Online (Sandbox Code Playgroud)
title将是bean的属性,它将返回一个字符串.我想在bean.title中存储其他EL表达式,以便对它们进行评估.
所以,如果bean.title =" This is the ${param.pageType} page",显然会在写入页面之前进行评估.
有没有办法做到这一点?
我们在WildFly 8上有一个JSF应用程序,它通过WEB-INF\classes在WAR文件夹中包含德语和英语的消息包以及faces-config.xml将名称映射到它并列出语言环境的配置,使用传统的文本国际化机制.应用程序没有数据库连接,但使用REST服务与第二个应用程序通信.
现在我们需要能够更轻松地更改文本,这意味着不必在更改文本时构建新的WAR文件并进行部署.所以我需要一种机制来将消息包放在WAR之外,同时能够像以前一样在XHTML页面中使用它.
两个可选的要求是更改文本并刷新应用程序中的消息,而不必重新启动应用程序(优先级2),并在WAR中使用默认包,该包将被外部包覆盖(优先级3).
我的想法是使用像Apache commons配置之类的东西来读取Application scoped bean中的属性文件,并在之前使用的EL名称下公开getter.但不知何故,感觉必须重新实现一个现有的机制,这应该更容易,甚至可能只使用Java EE核心.
是否有人以这种方式使用这种机制并且可以指出我对细节的一些示例/描述或者有更好的想法来实现列出的要求?