我是Spring框架的新手,我正在开发一个必须是多语言的Web应用程序。
tanslated值在数据库中,我不希望每次渲染视图以从数据库中选择值。
我们的想法是从应用程序中获取它们。所以,我想在我的应用程序启动时加载这些值,我不知道确切位置和放置位置。
感谢您的帮助!
答案 0 :(得分:1)
解决此问题的常用方法是为您的消息创建一个.properties文件,每种语言一个,让框架决定使用浏览器的语言环境使用哪一个,或直接指定它。
请参阅参考here以了解Spring MVC中的语言环境支持以及两个不同的示例here和here。
如果您坚持为您的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访问了一个函数。