国际化之MessageSourceAware和MessageSourceAccessor

先看接口MessageSourceAware
该接口的注释中

Note that the MessageSource can usually also be passed on as bean reference (to arbitrary bean properties or constructor arguments), because it is defined as bean with name "messageSource" in the application context.

大概意思是如果上下文中有名为messageSource的bean,那么会自动注入这个bean。
因此MessageSourceAware中肯定有一个方法void setMessageSource(MessageSource messageSource);

因为建议在要进行国际化操作的[b]类[/b],让它实现接口MessageSourceAware
public class CgodoSimpleUrlAuthenticationFailureHandler extends
SimpleUrlAuthenticationFailureHandler implements MessageSourceAware {
protected MessageSourceAccessor messages;

@Override
public void setMessageSource(MessageSource messageSource) {
messages = new MessageSourceAccessor(messageSource);
}
然后通过如上方式来实现一个MessageSourceAccessor
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MessageSourceAccessor是Spring框架提供的一个国际化消息处理工具,它可以方便地获取不同语言的消息文本。通常在Web应用中,我们需要根据用户的语言偏好来显示对应的消息文本,这时就可以使用MessageSourceAccessor来实现。 以下是MessageSourceAccessor的基本用法: 1. 配置MessageSource 在Spring配置文件中,需要配置一个MessageSource bean。 ```xml <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="classpath:messages" /> <property name="defaultEncoding" value="UTF-8" /> <property name="cacheSeconds" value="3600" /> </bean> ``` 其中,basename属性指定了消息资源文件的前缀,比如messages.properties,messages_en_US.properties等;defaultEncoding属性指定了消息文本的编码方式;cacheSeconds属性指定了消息缓存时间,单位为秒。 2. 获取MessageSourceAccessor 在需要使用消息文本的地方,通过依赖注入或者ApplicationContext.getBean()方法来获取MessageSourceAccessor对象。 ```java @Autowired private MessageSourceAccessor messageSource; ``` 或 ```java ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); MessageSourceAccessor messageSource = new MessageSourceAccessor(context.getMessageSource()); ``` 3. 获取消息文本 调用MessageSourceAccessor的getMessage()方法来获取指定语言的消息文本。 ```java String message = messageSource.getMessage("hello.world", new Object[] {"张三"}, Locale.CHINA); ``` 其中,第一个参数为消息文本的key,第二个参数为替换消息文本中占位符的参数,第三个参数为指定的语言环境。 如果没有找到对应的消息文本,会返回默认的消息文本,即key本身。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值