zl程序教程

您现在的位置是:首页 >  其他

当前栏目

sturts2的国际化支持详解编程语言

编程语言 详解 支持 国际化
2023-06-13 09:20:31 时间

以前一直看见 i18N ,现在才知道原来 i18N 就是 Internationalization,因为以 i 开头,以 N 结尾,共18个字母,也就是国际化的意思。那么怎样通过struts2实现国际化支持呢?

第一步:在src目录下添加两个资源文件,命名方式很重要的。

格式:baseName_language_country.properties。还有两种命名方式,都可以的,这个不用过多研究。比如,实现中英文切换我们要添加 globalMessages_zh_CN.properties 和globalMessages_en_US.properties。然后将各个key-value对添加到这两个文件中,key字段一定要统一。如:

sturts2的国际化支持详解编程语言

其中,value值可以使用占位符,比如:你好{0},至于怎么传参数,稍后再解释。

第二步:在struts.xml文件的struts标签里加入如下代码:

 constant name="struts.custom.i18n.resources" value="globalMessages"/ 

 constant name="struts.i18n.encoding" value="UTF-8" / 

在jsp中使用

 %@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"% 

 !-- 加载struts2标签库 -- 

 %@ taglib uri="/struts-tags" prefix="s"% 

String path = request.getContextPath(); 

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 

 !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" 

 html 

 head 

 base href=" %=basePath% " 

 s:head/ 

 meta http-equiv="Content-Type" content="text/html; charset=UTF-8" 

 title s:text name="loginPage"/ /title 

 /head 

 body 

 a href="register?request_locale=zh_CN" 中文 /a 

 a href="register?request_locale=en_US" English /a 

 s:form action="register" method="post" 

 %-- s:i18n 标签是用来从声明的资源包获得消息, 不只是使用当前操作相关联的资源包。properties文件的名称可以是任意的 

 name属性指定properties文件的名称 

 --% 

 s:i18n标签取出国际化内容: s:i18n name="globalMessages" 

 s:text name="loginPage"/ 

 /s:i18n 

 br/ 

 s:test标签取出国际化内容: s:text name="loginPage"/ 

 s:textfield key="email" name="email" /s:textfield 

 s:textfield key="password" name="password" /s:textfield 

 s:textfield key="repassword" name="repassword" /s:textfield 

 s:textfield key="phone" name="phone" /s:textfield 

 s:submit key="submit" /s:submit 

 /s:form 

 /body 

 /html 

效果展示:

sturts2的国际化支持详解编程语言

输出带占位符的信息。如,有一个 HelloWorld=Hello World{0},那么可以用下面这种方式来显示:

success.jsp

 %@ page language="java" contentType="text/html; charset=UTF-8" 

 pageEncoding="UTF-8"% 

 %@ taglib uri="/struts-tags" prefix="s"% 

 !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" 

 html 

 head 

 meta http-equiv="Content-Type" content="text/html; charset=UTF-8" 

 title 注册成功 /title 

 /head 

 body 

 s:text name="HelloWorld" s:param s:property value="email"/ /s:param /s:text 

 /body 

 /html 

效果展示:

sturts2的国际化支持详解编程语言

参考资料:

Struts2 的国际化实现

11185.html

cjavaxml