spring国际化

SpringUtil.java 用于实例化bean以及获取国际化消息
@Component("springUtils")
@Lazy(false)
public class SpringUtils implements ApplicationContextAware, DisposableBean {
	
	/** applicationContext */
	private static ApplicationContext applicationContext;
	
	/**
	 * 不可实例化
	 */
	private SpringUtils(){
	}

	@Override
	public void destroy() throws Exception {
		applicationContext = null;

	}

	@Override
	public void setApplicationContext(ApplicationContext applicationContext)
			throws BeansException {
		SpringUtils.applicationContext = applicationContext;

	}
	
	/**
	 * 获取applicationContext
	 * 
	 * @return applicationContext
	 */
	public static ApplicationContext getApplicationContext() {
		return applicationContext;
	}
	
	/**
	 * 获取实例
	 * 
	 * @param name 
	 * 		       Bean名称
	 * @return 实例
	 */
	public static Object getBean(String name) {
		Assert.hasText(name);
		return applicationContext.getBean(name);
	}
	
	/**
	 * 获取实例
	 * 
	 * @param name 
	 * 			   Bean名称
	 * @param type
	 * 			   Bean类型
	 * @return 实例
	 */
	public static <T> T getBean(String name, Class<T> type) {
		Assert.hasText(name);
		Assert.notNull(type);
		return applicationContext.getBean(name, type);
	}
	
	/**
	 * 获取国际化消息
	 * 
	 * @param code
	 * 			      代码	
	 * @param args
	 * 			      参数
	 * @return 国际化消息
	 */
	public static String getMessage(String code, Object... args) {
		LocaleResolver localeResolver = getBean("localeResolver", LocaleResolver.class);
		Locale locale = localeResolver.resolveLocale(null);
		return applicationContext.getMessage(code, args, locale);
	}

}


test.properties 添加配置文件信息

#配置国际化
locale=zh_TW
url_escaping_charset=UTF-8
message.cache_seconds=3600
message.common_path=/WEB-INF/language/message

applicationContext.xml 添加扫描SpringUtils所在包

    <!-- 扫描util -->
    <context:component-scan base-package="com.test.util"/>


applicationContext.xm

    <!-- 配置国际化 -->
    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="cacheSeconds" value="${message.cache_seconds}" />
        <property name="useCodeAsDefaultMessage" value="true" />
        <property name="basenames">
            <list>
                <value>${message.common_path}</value>
            </list>
        </property>
    </bean>

    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.FixedLocaleResolver">
        <property name="defaultLocale" value="${locale}" />
    </bean>

在/WEB-INF/language下添加国际化语言文件

message_zh_CN

demo.test=\u8303\u56F4

message_zh_TW

demo.test=\u7BC4\u570D

现在即可在jsp中输出国际化消息了

alert("<%=SpringUtils.getMessage("demo.test")%>");

修改test.properties中locale为zh_CN即可输出简体中文信息


转载于:https://www.cnblogs.com/snowcity1231/p/6714709.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值