gpt4 book ai didi

java - 在 Spring AbstractRoutingDataSource 中访问 Struts2 语言环境

转载 作者:太空宇宙 更新时间:2023-11-04 15:01:50 25 4
gpt4 key购买 nike

我们的应用程序使用 Struts2 Internalization 和 Spring AbstractRoutingDataSource 进行动态数据库更改。更改语言,需要选择对应的语言数据库。

因此,下面的代码使用 Spring RoutingDataSource 进行动态数据库选择。

public class RoutingDataSource extends AbstractRoutingDataSource {
protected Object determineCurrentLookupKey() {
return LanguageContextHolder.getLanguagetype();
}
}

Spring RoutingDataSource 工作正常。

我的问题是如何在更改时设置区域设置。由于它存储在 Struts2 中,因此我无法在 Spring 中访问它。

我发现 Spring MVC org.springframework.context.i18n.LocaleContextHolder 可以做到这一点,但由于我们使用的是 Struts2,我该如何执行上述操作?

最佳答案

Struts2 使用默认键 WW_TRANS_I18N_LOCALE 将当前区域设置存储在 session 中。要访问 RoutingDataSource 内的 session ,请使用 ActionContext.getContext().getSession() 方法。

// ...

if (ActionContext.getContext() != null) {
Map<String, Object> session = ActionContext.getContext().getSession();

if (session != null && session.containsKey(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE)) {
Locale locale = (Locale) session.get(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE);
}
}

// ...

关于java - 在 Spring AbstractRoutingDataSource 中访问 Struts2 语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22479715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com