始终
I18nInterceptor为每个Action
运行拦截器…它是
defaultStack(在 struts-
default.xml中
配置的)一部分,它存在是有原因的。
它以一种简单的方式工作:如果有一个名为的请求参数
request_locale,它将新的语言环境设置为会话。然后,在调用
getText()或类似函数从本地化包中获取正确的消息时,将读取该值。
从官方文档中:
拦截器,用于将会话中指定的语言环境设置为当前操作请求的语言环境。此外,此拦截器还将查找特定的HTTP请求参数,并将语言环境设置为提供的任何值。这意味着该拦截器可用于允许您的应用程序动态更改用户会话的语言环境,或者仅更改当前请求的语言环境(自XWork
2.1.3起)。这对于需要多语言支持并希望用户能够随时设置其语言首选项的应用程序非常有用。在执行此拦截器期间,将删除locale参数,以确保未在操作中没有典型对应设置程序的操作(例如request_locale)上设置属性。例如,使用默认参数名称,对 foo.action?request_locale = en_US 的请求
,然后将美国英语的语言环境保存在用户的会话中,并将用于以后的所有请求。如果没有设置语言环境(例如第一次访问),则拦截器将使用浏览器语言环境。
一些用法示例:
- Struts 2 – i18n或本地化示例
- struts2中的本地化(i18n)
- Struts 2 I18N(Struts 2国际化)



