`
zhaolianyang
  • 浏览: 94673 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2学习笔记十六(第16讲.Struts2的国际化)

 
阅读更多
struts2学习笔记十六(第16讲.Struts2的国际化)

一、struts2的国际化的几个方面:
1.页面的国际化,也就是jsp的国际化。
2.Action的国际化
3.类型转换信息的国际化
4.数字校验的国际化

java的国际化:
java语言国际化的支持几个类:ResourceBundle、Locale
如何获得当前java jdk系统中已经安装提供的那些国家和源的支持,并不是所有的国家都支持,只支持一些主要的国家。
添加一个包com.i18n,并且创建一个Tes1.java类来说明获取java中的源。
package com.i18n;
import java.util.Locale;;

public class Test1 {

	public static void main(String[] args) {
		Locale[] locales = Locale.getAvailableLocales();
		
		for(Locale locale : locales)
		{
//			System.out.println(locale.getDisplayCountry()+":"+locale.getCountry());
			
			System.out.println(locale.getDisplayLanguage()+":"+locale.getLanguage());
		}
	}

}


二、使用属性文件来实现国际化,主要是根据键值对的方式,键都是一样的,值是对应不同的国家语言。

在src下创建属性文件:hellofile_en_US.properties和hellofile_zh_CN.properies。
(属性文件名称baseName_language_country)

在src下创建测试类Test2.java
package com.i18n;

import java.util.*;

public class Test2 {

	public static void main(String[] args) 
	{
		Locale locale = Locale.US;
		
		ResourceBundle bundle = ResourceBundle.getBundle("hellofile", locale);
		
		String value = bundle.getString("hello");
		
		System.out.println("value:"+value);
	}

}


三、国家化的另一个类MessageFormat
在属性文件中传入参数,是返回的信息不是固定的。
在src下创建测试类Test3.java
package com.i18n;

import java.util.*;
import java.text.*;

public class Test3 
{
	public static void main(String[] args) 
	{
//		Locale locale = Locale.getDefault();
		
		Locale locale = Locale.US;
		
		ResourceBundle bundle = ResourceBundle.getBundle("hellofile", locale);
		
		String value = bundle.getString("hello");
		
		String result = MessageFormat.format(value, new Object[]{"zly"});
		
		System.out.println(result);
	}
}

注意:传入的参数是按顺序排的,否则将什么都不做。

struts2的jsp页面的国际化:
在src下创建属性文件:message_en_US.properties和message_zh_CN.properties
在register2.jsp页面中添加调用的标签。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics