首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在页面加载时从数据库自动设置Struts2中的i18n

在页面加载时从数据库自动设置Struts2中的i18n,可以通过以下步骤实现:

  1. 创建一个数据库表,用于存储不同语言的翻译文本。表结构可以包括字段如下:
    • id: 翻译文本的唯一标识符
    • language: 语言代码,例如en(英语)、zh(中文)等
    • key: 翻译文本的键值,用于在页面中标识需要翻译的文本
    • value: 对应语言的翻译文本内容
  2. 在Struts2的配置文件(struts.xml)中配置国际化(i18n)拦截器,以及相关的资源文件路径。例如:<interceptors> <interceptor name="i18n" class="org.apache.struts2.interceptor.I18nInterceptor"/> ... </interceptors>

<global-results>

代码语言:txt
复制
 ...

</global-results>

<global-exception-mappings>

代码语言:txt
复制
 ...

</global-exception-mappings>

<action name="*" class="com.example.MyAction" method="{1}">

代码语言:txt
复制
 <interceptor-ref name="i18n"/>
代码语言:txt
复制
 ...

</action>

<constant name="struts.custom.i18n.resources" value="i18n"/>

代码语言:txt
复制
  1. 在项目中创建资源文件夹(例如i18n),并在该文件夹下创建不同语言的资源文件(例如messages_en.properties、messages_zh.properties),用于存储页面中需要翻译的文本。资源文件的内容可以为键值对形式,例如:welcome.message=Welcome to my website! login.button=Login
  2. 创建一个初始化类(例如I18nInitializer),在该类中编写代码从数据库中读取翻译文本,并将其存储到Struts2的国际化资源文件中。代码示例:public class I18nInitializer implements ServletContextListener {
代码语言:txt
复制
   @Override
代码语言:txt
复制
   public void contextInitialized(ServletContextEvent event) {
代码语言:txt
复制
       // 从数据库中读取翻译文本,并存储到Struts2的国际化资源文件中
代码语言:txt
复制
       ResourceBundle bundle = ResourceBundle.getBundle("i18n.messages");
代码语言:txt
复制
       // 获取数据库中的翻译文本,并将其存储到bundle中
代码语言:txt
复制
       // ...
代码语言:txt
复制
       // 将bundle中的翻译文本写入到资源文件中
代码语言:txt
复制
       // ...
代码语言:txt
复制
   }
代码语言:txt
复制
   @Override
代码语言:txt
复制
   public void contextDestroyed(ServletContextEvent event) {
代码语言:txt
复制
       // 清理资源
代码语言:txt
复制
   }

}

代码语言:txt
复制
  1. 在web.xml中配置初始化类。例如:<listener> <listener-class>com.example.I18nInitializer</listener-class> </listener>

通过以上步骤,页面加载时会自动从数据库中读取翻译文本,并将其设置到Struts2的国际化资源文件中。在页面中使用Struts2的国际化标签(例如<s:text>)来引用翻译文本时,会自动根据当前语言显示相应的翻译内容。

腾讯云相关产品推荐:

  • 云数据库 TencentDB:提供高性能、可扩展的数据库服务,支持多种数据库引擎,适用于各类应用场景。产品介绍链接:https://cloud.tencent.com/product/cdb
  • 云服务器 CVM:提供安全可靠的云服务器,支持多种操作系统和应用场景,可灵活扩展和管理。产品介绍链接:https://cloud.tencent.com/product/cvm
  • 云存储 COS:提供高可靠、低成本的对象存储服务,适用于图片、音视频、文档等各类数据的存储和管理。产品介绍链接:https://cloud.tencent.com/product/cos
  • 人工智能 AI:提供丰富的人工智能服务,包括语音识别、图像识别、自然语言处理等,可应用于智能客服、智能推荐等场景。产品介绍链接:https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java程序员面试题集(86-115)

86、Struts 2,Action通过什么方式获得用户页面输入数据,又是通过什么方式把其自身数据传给视图?...94、Struts2如何实现I18N?...destory()方法将在拦截器被销毁之前被调用, 它在拦截器生命周期内也只被调用一次。 项目中使用过有权限拦截器、执行时间拦截器、令牌拦截器等。 96、如何在Struts2使用Ajax功能?...答:它定义了Struts 2内部众多拦截器和Result类型,而Struts 2很多核心功能都是通过这些内置拦截器实现,请求把请求参数封装到action、文件上传和数据验证等等都是通过拦截器实现...代理对象在用户调用getter方法就会去数据库加载数据。但加载数据就需要数据库连接。而当我们把会话关闭数据库连接就同时关闭了。

1.8K70

Spring Boot国际化支持

本章将讲解如何在Spring Boot和Thymeleaf页面模板国际化支持,根据系统语言环境或者session语言来自动读取不同环境文字。...国际化自动配置 Spring Boot已经对国际化这一块做了自动配置。...fallbackToSystemLocale:当找不到当前语言资源文件,如果为true默认找当前系统语言对应资源文件messageszhCN.properties,如果为false即加载系统默认的如..., i18n/login, i18n/index 2、在i18n目录下创建以下几个文件 index.properties,indexzhCN.properties,index.properties作为找不到定义语言资源文件默认配置文件...,并设置默认语言为US英文 LocaleResolver接口有许多实现,可以session、cookie、Accept-Language header、或者一个固定值来判断当前语言环境,下面是使用

2.1K60
  • 简述struts2拦截器作用_springmvc登录拦截器

    Struts2拦截器栈就是将拦截器按一定顺序联结成一条链。在访问被拦截方法或字段Struts2拦截器链拦截器就会按其之前定义顺序被调用。...二、实现Struts2拦截器原理 Struts2拦截器实现原理相对简单,当请求struts2action,Struts 2会查找配置文件,并根据其配置实例化相对 拦截器对象,然后串成一个列表...intercept方法就是拦截主体了,每次拦截器生效都会执行其中逻辑。 不过,struts又提供了几个抽象类来简化这一步骤。...Parameters Interceptor params 将请求参数设置到Action中去。...Static Parameters Interceptor staticParams struts.xml文件中将内容设置到对应Action

    34720

    安恒信息研究员发现Struts 2高危漏洞,Apache官方致谢

    虽然Struts 1到Struts 2有着太大变化,但是相对于WebWork,Struts 2变化很小。...s2-029 Apache Struts2 标签远程代码执行分析 >>>> 标签介绍 Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2主题、模板都提供了很好扩展性...实现了更好代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变需求。...包括最常用jsp页面,也可以说Velocity和FreeMarker等模板技术使用。 >>>> 漏洞分析 s2-029没有漏洞细节,但通过分析源码已重现漏洞。...上面两个标签name属性都存在问题 下面对i18n标签做分析 跟踪i18n标签name属性在代码处理: org.apache.struts2.components.I18n …… public

    64150

    s2-029 Apache Struts2 标签远程代码执行分析

    >>>> 标签介绍 Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2主题、模板都提供了很好扩展性。实现了更好代码复用。...Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变需求。...Struts2标签库有一个巨大改进之处,struts2标签库标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用。...包括最常用jsp页面,也可以说Velocity和FreeMarker等模板技术使用。 >>>> 漏洞分析 s2-029没有漏洞细节,但通过分析源码已重现漏洞。...上面两个标签name属性都存在问题 下面对i18n标签做分析 跟踪i18n标签name属性在代码处理: org.apache.struts2.components.I18n …… public

    1K60

    struts2标签详解

    ,通常在进行程序调用时使用,便于查找JSP页面错误 6)引用资源文件标签:用于加载资源包到值栈,它可以允许标签访问任何资源包信息,而不只是当前action相关联资源包。...name属性用以指定资源包类路径 xxx.xxx.xxx.ApplicationMessages定义了标签:HelloWord=欢迎您!...并且在单击该链接执行异步请求,该标签url属性必须使用标签进行设置,target属性指向要被更新页面组件,showLoadingText属性决定是否显示文本,indicator表示异步请求要显示图片...list属性用以指定一个自动提示检索列表集合(可以是ActionList类型属性),autoComplete属性为true表示进行自动提示 <sx:autocompleter name=”test...-struts1-plugin-2.3.4.jar 2.3.4 struts2-struts1-plugin-2.3.4 这个jar包是用于将strusts和spring进行整合一个插件,在处理数据库事物

    1.5K20

    零玩转后端接口数据交互国际化

    那么就让我们一起 “撕开接口数据国际化面纱”,深入探讨如何在 SpringBoot 应用程序实现国际化,以满足全球用户多语言需求。...重点:我们在项目中会创建 MessageSource接口,但不管使用哪个实现类或者我们自定义类,都要将Bean名称设置为messageSource 加载ApplicationContext自动搜索上下文中定义...(naem、text),便可以国际化文件取值。...☕ 四、真实线上解决方案 在解决方案,会采用同时数据库和properties文件读取国际化信息,达到国际化信息高灵活性。...LOCAL_CACHE.putAll(this.loadAllMessageResources()); } /** * 重点:加载所有的国际化消息资源 * 同时数据库

    3.5K1613

    JAVA基础(25) java 拦截器、过滤器、监听器区别

    Struts2拦截器栈就是将拦截器按一定顺序联结成一条链。在访问被拦截方法或字段Struts2拦截器链拦截器就会按其之前定义顺序被调用。...二、实现Struts2拦截器原理 Struts2拦截器实现原理相对简单,当请求struts2action,Struts 2会查找配置文件,并根据其配置实例化相对 拦截器对象,然后串成一个列表,...intercept方法就是拦截主体了,每次拦截器生效都会执行其中逻辑。 不过,struts又提供了几个抽象类来简化这一步骤。...Parameters Interceptor params 将请求参数设置到Action中去。...Static Parameters Interceptor staticParams struts.xml文件中将内容设置到对应Action

    65430

    【大牛经验】Java开源web框架汇总(152款)

    4、基于页面组件框架。灵活页面组件配置,可以直接通过配置文件设置字段级事件组件。   ...Grails提供一个完整开发平台包括内置Jetty web服务器并提供了一些强大功能比如简单对象关系映射(ORM),自动重新加载应用程序,为CRUD(新增,查询,修改,删除)操作提供代码自动生成支架...作为一个Servlet框架,它特性有:访问控制、logging、I18N数据库访问,XML/XSL支持等,还用到Jetty,FOP和jCharts开源项目。...这个自动生成class是在一个单独class loader中加载,所以当页面模板或页面后台类变化时将被丢弃。...页面加载操作-在呈现视图之前调用一个或多个操作方法,在一个或多个阶段。 管理参数解析HTTP参数解析URL存储在托管豆,只是得到一个参考参数豆其他java类方便。

    5.6K50

    java之struts2之拦截器

    3. struts2所有功能都是由拦截器来实现,而拦截器在struts2可以自由配置和自由装配。所以struts2所有功能也都是可插拔。...并且struts2拦截器是可以自定义,所以如果struts2没有提供项目所需功能,可以通过自定义拦截器来实现。...4. struts2拦截器有哪些,分别有什么功能: alias : 对于HTTP请求包含参数设置别名 autowiring : 将某些JavaBean实例自动绑定到其他Bean对应属性。...conversionError : ActionContext中将转化类型时候发生错误添加到Action值域错误,在检验时候经常被使用来显示类型转化错误信息 cookie : Struts2.0.7...版本开始,可以把cookie注入Action设置名字或值 createSession : 自动创建一个HTTP Session, 尤其是对需要HTTPSession拦截器特别有用。

    89730

    Struts2【拦截器】

    因为我们在启动服务器时候会自动装载这个文件,因此我们才可以在Action中使用到Struts为我们提供功能【数据自动封装…文件上传】 在struts-default.xml定义拦截器就有32个之多...这里写图片描述 效果图我们可以看出,他们执行顺序是这样: 当服务器开启时候,会执行拦截器init()方法 当访问Action,Action实例被创建 创建完Action实例,会调用拦截器interceptor...()方法 最后,执行Actionexecute()方法 其实很好理解,之前我们使用Struts为我们提供数据自动封装功能时候,是这样子: 服务器启动,加载配置文件信息 初始化默认拦截器栈 当用户访问...,也就是说,当页面加载得太久了,就跳转到对应提示页面…当服务器执行完毕了,也跳转到相对应页面 Struts2防止表单重复提交拦截器 回顾防止表单重复提交 当我们学习Session时候已经通过Session...id,因为在数据库表我没使用自动增长id user.setId(WebUtils.makeId()); //这是以前表,规定要address,只能手动设置

    87950

    前端全栈进阶,Nextjs打造跨框架SaaS应用信息fx

    **文件系统路由**: - Next.js 通过 `/pages` 目录文件结构自动设置应用路由。这种约定优于配置方式简化了路由管理。4....**代码分割和懒加载**: - Next.js 自动对每个页面进行代码分割,只加载用户真正需要页面代码。此外,它还支持动态导入,允许进一步加载。5....**图片组件和优化**: - Next.js 版本 9.5 开始引入了内置图片优化功能,提供了一个 `Image` 组件和自动图片优化器。11....**创建数据库连接**: 根据你使用数据库和环境,创建一个数据库连接。这可能涉及设置连接字符串、创建连接池或使用单个连接。...**关闭数据库连接**: 在应用程序结束或不再需要数据库连接,确保关闭数据库连接。

    10600

    高级框架-Struts2-day01【悟空教程】

    那么Struts2基本jar包已经引入完成了,我们使用Struts2都是页面发起请求到服务器,再由服务器处理请求,响应到页面的这个过程。接下来我们就从页面开发进行Struts2开发吧。...1.2.3.2 配置struts.xml提示(在不联网情况下) 开发发过程如果可以上网,struts.xml会自动缓存dtd,提供提示功能。...1.2.4.1 Struts2配置文件加载顺序: 每次客户端发送请求到服务器都要先经过Struts2核心过滤器StrutsPrepareAndExecuteFilter,这个过滤器有两个功能:预处理和执行...通过将Struts2所有配置文件都放在Web项目的WEB-INF/classes路径下,struts.xml文件包含了其他配置文件,在Struts2框架自动加载struts.xml文件,完成加载所有的配置信息...这个时候我们就只配置一个就可以了,在上述代码,当客户端发送/linkman_save.action这样请求,action元素name属性就被设置成linkman_save,method属性就被设置

    42730

    Strust2总结及在面试一些问题.

    4、调用Action(FilterDispatcherstruts配置文件读取与之相对应Action ) 5、启用拦截器(WebWork拦截器链自动对请求应用通用功能,验证...根据配置查找响应是什么信息:SUCCESS、ERROER,将跳转到哪个jsp页面) 9、响应用户(jsp--->客户浏览器端显示) 10、struts2标签库(相比struts1...说说Struts2输入校验流程 Struts2校验框架进行校验,将执行以下流程: A:类型转换器负责对字符串请求参数执行类型转换,并将这些值设置成Action属性值 B:在执行类型转换过程可能出现异常...如何在jsp页面获取值栈数据?...源代码分析 ①启动服务器(tomcat)将会自动加载配置文件,加载过程如下:     服务器启动,init()方法被执行 ?

    93070

    Astro 4.0:全新升级,为现代网站构建赋能

    Astro是一个专门为内容驱动网站(博客、营销和电子商务网站)打造Web框架。如果你需要一个加载迅速且具备出色SEO性能网站,那么Astro正是你需要。...轻松访问外部工具,Squoosh图像优化器。 为内部团队管理面板自动化常见任务,比如在开发过程中切换用户账户。 在Astro集成目录中发现新工具栏应用,并学习如何构建自己应用。...国际化(i18n)路由: Astro 4.0引入了新国际化路由功能,帮助您以更少复杂性构建全球可访问网站。利用Astro新功能,自动i18n路由和用于处理URLs低级助手函数。...借助Astro视图转换,您可以实现如下功能: 在不同页面之间进行动画导航,而无需加载庞大SPA。 在页面之间保持有状态UI,例如视频播放器和地图。...自动将一个页面常见元素变形到另一个页面。 通过滑动和淡出元素,赋予您页面更多个性。 自视图转换首次推出以来,我们不断改进对它支持。

    49710
    领券