如何在应用程序启动时添加一些Spring属性

时间:2011-06-30 03:52:15

标签: spring spring-mvc internationalization

我是Spring框架的新手,我正在开发一个必须是多语言的Web应用程序。

tanslated值在数据库中,我不希望每次渲染视图以从数据库中选择值。

我们的想法是从应用程序中获取它们。所以,我想在我的应用程序启动时加载这些值,我不知道确切位置和放置位置。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

解决此问题的常用方法是为您的消息创建一个.properties文件,每种语言一个,让框架决定使用浏览器的语言环境使用哪一个,或直接指定它。

请参阅参考here以了解Spring MVC中的语言环境支持以及两个不同的示例herehere

如果您坚持为您的i18n数据使用数据库,当然也可以,但据我所知,没有内置的支持。请参阅this主题,了解相关提示。

答案 1 :(得分:0)

我找到了解决方案。我在春天创建了一个像这样的bean:

public class DictionaryAccessor implements ServletContextAware, InitializingBean{

    @Resource
    private DictionaryServices dictionaryServices;

    protected ServletContext context;
    @Override
    public void setServletContext(ServletContext servletContext) {
        context = servletContext;
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        logger.debug("initializing dictionary");
        loadDictionary();
        logger.debug("done with dictionary");
    }

我的应用程序启动时将加载DictionaryAccessor。在方法loadDictionary中,我将我的值作为属性放在ServletContext对象中。

在我的jsps中,我创建了自己的标签并访问了翻译或.zul文件我从我的tld访问了一个函数。