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

以前一直看见 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 的国际化实现

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/11185.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论