Spring mvc的国际化显示

来源:互联网 发布:lol全皮肤软件 编辑:程序博客网 时间:2024/04/26 17:51


1. 首先我们需要在springmvc的配置文件里做添加一个bean:


<!-- 国际化消息 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"><property name="basenames"><list><value>classpath:message</value></list></property> <property name="defaultEncoding" value="UTF-8"/> </bean>

这里用的org.springframework.context.support.ReloadableResourceBundleMessageSource  还有org.springframework.context.support.ResourceBundleMessageSource,这里两者最明显的区别就是ReloadableResourceBundleMessageSource可以设置编码,而ResourceBundleMessageSource不可以。


2. 再classpath目录下新建一个message.properties


3. 接下来我们就可以直接获取message了,这里写了一个工具类:

package com.xiatianlong.controller;import java.util.Date;import java.util.Locale;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.propertyeditors.StringTrimmerEditor;import org.springframework.context.MessageSource;import org.springframework.web.bind.WebDataBinder;import org.springframework.web.bind.annotation.InitBinder;import com.xiatianlong.DateEditor;/** * 基类Controller * @author lolli * */public class BaseController {@Autowiredprotected MessageSource messageSource;/** * single message * @param messageKey  * message key * @return */protected String getMessage(String messageKey) {return messageSource.getMessage(messageKey, null, Locale.CHINA);}/** * has param message * @param messageKey * message key * @param args * message param array * @return */protected String getMessage(String messageKey, Object[] args) {return messageSource.getMessage(messageKey, args, Locale.CHINA);}}


4. 使用

@RequestMapping(value = "/article", method = RequestMethod.GET)public String publishArticle(Model model){model.addAttribute("testMessage", getMessage("spring.mvc.text.message"));model.addAttribute("testMessageParam", getMessage("spring.mvc.text.message.parm", new Object[]{"test"}));return "/admin/publishArticle";}






0 0
原创粉丝点击