是否有任何机制可以从struts2
中的文件系统加载属性文件?我想出一个热门的部署机制。如果我更新war文件,它将被重新部署。我可以使用
LocalizedTextUtil.clearDefaultResourceBundles();
LocalizedTextUtil.addDefaultResourceBundle("struts/resources");
但它只会查看struts2
默认位置。
欢迎任何解决方案,破解,解决方法。
答案 0 :(得分:2)
我找到了解决方案
首先在struts.properties中struts.custom.i18n.resources = globalMessages
然后,将以下代码添加到您的StartupServlet或将在服务器启动的位置执行的其他位置
URL[] urls;
try {
File file = new File("/your path");
URL url = file.toURI().toURL();
urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
LocalizedTextUtil.setDelegatedClassLoader(cl);
LocalizedTextUtil.addDefaultResourceBundle("globalMessages");
} catch (MalformedURLException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
您可以通过以下方式实现此目的: 1.告诉struts使用某个属性包。 2.将其添加到类路径
示例:
在 Struts.properties :
中....
struts.custom.i18n.resources=globalMessages
....
创建globalMessages.properties
(以及任何特定于语言环境的捆绑包,例如globalMessages_ru_RU.properties
),将捆绑包放在名为/app_conf/i18n
的文件夹中,最后放置目录/app_conf/i18n
在课程路径中。