转换一下编码
native2ascii ApplicationResources.properties ApplicationResources_cn.properties
//ApplicationResources.properties 为有中文的property文件
native2ascii ApplicationResources.properties ApplicationResources_cn.properties
//ApplicationResources.properties 为有中文的property文件
BufferedReader in = new BufferedReader(new InputStreamReader(inStream, "8859_1"));
居然是以8859_1编码来读入所有的属性文件。
我看了,的确如此。
那可不可以修改java.util.Properties,编译后重新打包呢
然后创建两个类分别用来代替PropertyMessageResources和PropertyMessageResourcesFactory。也只是简单的改了PropertyMessageResources的loadLocale方法中Properties props = new Properties();这一行。然后分别在web.xml的action servlet的配置中加入factory参数,值设为改过的PropertyMessageResourcesFactory,在struts的配置文件中把message-resources的factory属性设为改过的PropertyMessageResourcesFactory,就彻底解决了读属性文件的中文问题。不需要用native2ascii先转换属性文件。如果你可以重新编译java.util.Properties的话,当然更简单。