Java 1.6,Struts 2.0.11,Windows OS
我需要在struts.xml
中将基于模块的标签属性文件放在src
包文件夹之外的哪些配置?
原因:在基于单独模块的文件夹中对所有基于国际化的属性进行分组?
WEB-INF
|_classes
| |__com
| |__xyz
| |__Hellofoo.class
|
|__ struts.xml
|
|__props
|__xyz
|_ en.properties [ English Labels ]
jp.properties [ Japanese Labels]
spn.properties[ Spainish Labels ]
答案 0 :(得分:1)
我认为你必须在struts.xml文件或属性文件中指定它,如
struts.custom.i18n.resources=global-messages, image-messages
或在像
这样的xml文件中<constant name="struts.custom.i18n.resources" value="global-messages, image-messages" />
或者,您可以使用某种Listener
根据需要自定义它。
IMO文本资源应根据地区和包装进行组织,但这是一个选择问题。
答案 1 :(得分:1)
我找到了解决方案
首先在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();
}
答案 2 :(得分:1)
现在这不是你特定问题的答案。但是我认为对于那些偶然发现这个问题的人来说(例如我)可能会有用“我如何将struts.custom.i18n.resources属性设置为特定文件夹(在src文件夹内,但不在其下方)”
现在,当我在struts.properties中设置以下内容时,它无法正常工作
struts.custom.i18n.resources=resources/locale-bundles/label-values,resources/locale-bundles/error-values
但是,如果我在struts.xml中设置它,它确实如此。 (不知道为什么)
<constant name="struts.custom.i18n.resources"
value="resources/locale-bundles/label-values, resources/locale-bundles/error-values" />