zoukankan      html  css  js  c++  java
  • spring mvc中,如何在 Java 代码里,获取 国际化 内容

    首先,在Spring的application.xml中定义

     <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
            <!-- 国际化信息所在的文件名 -->
            <property name="basename" value="messages/messages"/>
            <!-- 如果在国际化资源文件中找不到对应代码的信息,就用这个代码作为名称  -->
            <property name="useCodeAsDefaultMessage" value="true"/>
    </bean>

    其中,id 的值必须是 “messageSource”,否则会报错

    首先,我想到的是,既然它是一个被声明好的bean,那么,应该可以使用 @Autowired 标签来绑定吧。于是我写了如下的代码:

    public class Const {  
        @Autowired  
        private static ResourceBundleMessageSource rms  
          
        public static String getTextValue(String key) {  
            return rms.getMessage(key, null, null);  
        }  
    }  

    rms 的值一直是null,也就是说注入失败了

    后来在网上查到,“ApplicationContext” 这个接口继承了“MessageSource”接口,那么我们只要获取项目的 ApplicationContext 的实现类,就可以通过 getMessage() 方法来获取国际化文件内容了。

    那么要如何简单方便的来获取 ApplicationContext 的实现类呢?这个时候就需要另一个接口了,即“ApplicationContextAware”,任何类实现这个接口,均会被注入  ApplicationContext 。

    public class SpringUtil implements ApplicationContextAware {  
        private static ApplicationContext applicationContext;  
      
        public static ApplicationContext getApplicationContext() {  
            return applicationContext;  
        }  
      
        @Override  
        public void setApplicationContext(ApplicationContext arg0) throws BeansException {  
            applicationContext = arg0;  
        }  
      
        public static Object getBean(String id) {  
            Object object = null;  
            object = applicationContext.getBean(id);  
            return object;  
        }  
    } 

    当然,必须要将上面的 SpringUtil 类在application.xml文件中配置一下,才能让它被spring框架读取,然后给它注入 ApplicationContext。配置很简单:

    <bean id="SpringUtil" class="util.SpringUtil"/>  

    这样就行了

    public class Const {  
          
        public static String getTextValue(String key) {  
            return SpringUtil.getApplicationContext().getMessage(key, null, null);  
        }  
    }  
  • 相关阅读:
    性能测试学习笔记目录
    关于多项式的一些东西
    几道有意思的积性函数题
    关于min_25筛的一些理解
    【清华集训2014】主旋律
    清北冬令营训练计划
    # HNOI2012 ~ HNOI2018 题解
    贪心(qwq)习题题解
    导数与积分总结
    仙人掌 && 圆方树 && 虚树 总结
  • 原文地址:https://www.cnblogs.com/liaojie970/p/7213663.html
Copyright © 2011-2022 走看看