尼妈,spring3.1.1 messagesource不能设置defaultencoding

Life is short , play more!
本文来自lihao's Blog,转载请注明。

spring 3.1.1 国际化(messagesource) 遇到的问题。 当然spring 3.2.9 上可以设定defaultencoding。

application-context 设定一个bean messageSource

<bean id="messageSource">    <property name="basename" value="message"/>
3.1.1 不支持defaultencoding 的设置,这下难倒了。
3.2.9 支持defaultencoding设置。
</bean>


如果不舍定defaultencoding位utf-8
那么message_zh_CN.properties  此文件只能为iso-8859-1 编码,否则通过spring3的 messagesource获取到则为乱码。  这里我们输入中文后,通过messagesource读取到的文字不会乱码。但是编辑起来那可是让人头疼。都会显示 \u 表示为unicode字符。

NotEmpty.user.name=User Name can not be blank.Size.user.name=\u4EC0\u4E48User Name must be between 5 to 20 charactersSize.user.password=\u4EC0\u4E48Location must be between 5 to 10 characters

如下是一个测试 messagesource 的例子。

public class IndexController {

@Autowired

private MessageSource messageSource;

@RequestMapping(value = "/", method = RequestMethod.GET)

public String home(Locale locale, Model model) {

private static final Logger logger = LoggerFactory.getLogger(HomeController.class);

logger.info(messageSource.getMessage("Size.user.name", null, new Locale("zh_CN")));    // 这里我们把资源message_zh_CN.properties 里的size.user.name 打印出来

}


发表评论

电子邮件地址不会被公开。 必填项已用*标注