jetspeed 显示汉字的方法

04-05-19 wwh
我在5月初用cvs从apache checkout jetspeed,生成的版本是jetspeed-1.6-dev。可是我发现界面上显示的中文是乱码。

我弄了很长时间才搞定,我把方法列出来,请各位指点一下有没有更好的方法,先谢谢了

velocity的.vm文件中的中文正确显示,修改配置文件TurbineResource.properties

services.VelocityService.input.encoding=gb2312

services.VelocityService.output.encoding=gb2312

浏览器form提交的汉字是乱码,解决方法:修改TurbineResource.properties,定义

content.defaultencoding=gb2312

汉化绑定的字符串:

进入目录src/java/org/apache/jetspeed/modules/localization,将JetspeedLocalization_en.properties复制为JetspeedLocalization_zh.properties,并在JetspeedLocalization_zh.properties中汉化字符串.

但是这样好象还是不行,不得已,我自已写了一个类mypackage.MyLocalizationService extends JetspeedLocalizationService,

并重载getString(),如下

public class MyLocalizationService extends JetspeedLocalizationService

{

private static final JetspeedLogger logger = JetspeedLogFactoryService.getLogger(MyLocalizationService.class);

public String getString(String bundleName, Locale locale, String key)

{

String value=super.getString(bundleName,locale,key);

String retvalue=value;

try

{

retvalue=new String(value.getBytes("8859_1"),"gb2312");

}

catch(Exception e)

{

logger.error("getString error",e);

}

return retvalue;

}

}

最后在TurbineResource.properties中设置

locale.default.language=zh

locale.default.country=CN

locale.default.charset=gb2312

services.LocalizationService.classname=mypackage.MyLocalizationService

这样无论是.vm中的汉字、浏览器提交的汉字和本地化文件中的汉字都显示正常。有的参数是试出来的,有的是看源码学

来的,还写了一个类。应该不需要这样麻烦,有没有更简单的方法?

banq
2004-05-23 12:22
好办法,jetspeed具体我没有做过,不过按照我以前统一编码方式的思维应该可以,因为他们都是Web程序 。。

猜你喜欢