Struts1 中的国际化
国际化简称i18n是英语Internationalization的缩写。在Struts中实现国际化需要以下几步:
- 创建资源文件
- 加载资源文件
- 在页面中使用<been:message >标签来显示国际化的文本消息。
步骤详解:
1——创建资源文件
创建一个包用来放资源文件。
Struts中的默认创建的资源文件名是ApplicationResources.properties。我们要自定义的资源文件名可以这样命名:
baseName_language.properties. baseName是资源的基本名,language表示所支持的语言,这个可以再浏览器的语言菜单里面看到,中文是zh英文是en。
最后的properties是文件的后缀名,不可改变。
打开资源文件后添加name,和value集合的键值对。先添加中文资源,里面的name一般是这样写的 pageName.页面的标签,
比如添加用户页面的添加按钮(adduser.btn),他的value值就是中文 "添加"如果是英文资源,则value值是"ADD"。就这样把页面的每个能显示的节点都给配一套 英文资源和中文资源。
2——加载资源文件<struts1中的配置>
资源文件通过struts-config.xml文件进行配置,默认从WEB-INF/classes路径加载。
<struts-config>
<message-resources parameter="资源文件所在的包名.baseName"/>——只需要基本名就行
</struts-config>
3——在页面使用<bean:message>来显示数据
在此之前需要在页面上引用Struts HTMl的标签库和Struts bean的标签库。
<bean:message key="adduser.btn"/>页面上的添加按钮。
4——通过Action改变当前的语言环境
public class LanguageChange extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String lang=request.getParameter("lang");
if(lang.equals("zh")){
request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.CHINESE);
}
if(lang.equals("en")){
request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.ENGLISH);
}
return mapping.findForward("adduser");
}
}
可以用页面上的超链接进入这个Action,然后跳转到页面更改语言,则国际化完成。