Spring_国际化信息设置

生命太过短暂,今天放弃了明天不一定能得到。

  Spring有多个信息源的类,它们都实现了MessageSource接口。在这些类中,最常见和有用的是

  • ResourceBundleMessageSource 
  • ReloadableResourceBundleMessageSource

  1.配置ResourceBundleMessageSource

  1)使用Java配置   

package config;

import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan("study.practice")
public class WebConfig extends WebMvcConfigurerAdapter {
    
    /**
     * 配置JSP视图解析器:InternalResourceViewResolver
     * @return
     */
    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver resolver =
                new InternalResourceViewResolver();
        //添加前缀
        resolver.setPrefix("/WEB-INF/views");
        //添加后缀
        resolver.setSuffix(".jsp");
        resolver.setViewClass(JstlView.class);
        return resolver;
    }
    
    /**
     * 配置国际化信息源 ResourceBundleMessageSource
     * @return
     */
    @Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource messageSource = 
                new ResourceBundleMessageSource();
        messageSource.setBasename("messages");
        return messageSource;
    }
}

 

  2)使用XML配置

 

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"
            p:basename="messages"
        />

 

  设置该bean的baseName属性,ResourceBundleMessageSource 会试图在根路径的属性文件中解析信息,这些属性文件的名称时根据这个基础名称衍生得到的,如以上代码baseName为'messages',那么这些属性文件可命名为'messages_zh.properties'或'messages_us.properties'。

 

  2.配置ReloadableResourceBundleMessageSource

  1)使用Java配置

 

@Bean
    public MessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource =
                new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("file:///etc/source/messages");
        messageSource.setCacheSeconds(10);
        return messageSource;
    }

  2)使用XML配置

 

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
            p:basename="file:///etc/source/messages"
            p:cacheSeconds="10"
        />

  配置好信息源后,在JSP页面我们可以将硬编码的欢迎信息替换成如下形式:

<h1><s:message code="app.title" /><h1>

  这两种方案的工作方式非常类似,区别在于ReloadableResourceBundleMessageSource 能够重新加载信息属性,而不必重新编译或重启应用。

 

转载于:https://www.cnblogs.com/dandelZH/p/9053616.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值