在页面加载时从数据库自动设置Struts2中的i18n,可以通过以下步骤实现:
<global-results>
...
</global-results>
<global-exception-mappings>
...
</global-exception-mappings>
<action name="*" class="com.example.MyAction" method="{1}">
<interceptor-ref name="i18n"/>
...
</action>
<constant name="struts.custom.i18n.resources" value="i18n"/>
@Override
public void contextInitialized(ServletContextEvent event) {
// 从数据库中读取翻译文本,并存储到Struts2的国际化资源文件中
ResourceBundle bundle = ResourceBundle.getBundle("i18n.messages");
// 获取数据库中的翻译文本,并将其存储到bundle中
// ...
// 将bundle中的翻译文本写入到资源文件中
// ...
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// 清理资源
}
}
通过以上步骤,页面加载时会自动从数据库中读取翻译文本,并将其设置到Struts2的国际化资源文件中。在页面中使用Struts2的国际化标签(例如<s:text>)来引用翻译文本时,会自动根据当前语言显示相应的翻译内容。
腾讯云相关产品推荐:
领取专属 10元无门槛券
手把手带您无忧上云