struts2学习笔记(4)
今天一天学习了struts2的国际化,我觉得这个部分对于目前的项目来说用处不大,可能时了大公司,做大的项目才会用到,所以用的时间不是很长,对其大概了解了一下吧。下面快速总结一下:
首先是,struts2的国际化其实也是信赖了java的,因为在java里,一共提供了很多种语言,也就是说,只有java支持的这些语言,在struts2里才可使用,并且language和country的名字要和java里相对应。我这里有一个java程序,可以看看java里支持的语言。
package com;
import java.util.Locale;
public class LocalList {
public static void main(String[] args) {
Locale[] localelist=Locale.getAvailableLocales();
for (int i = 0; i < localelist.length; i++) {
System.out.println(localelist[i].getDisplayCountry()+" = "+localelist[i].getCountry()+" "+localelist[i].getDisplayLanguage()+" = "+localelist[i].getLanguage());
}
}
}
1.资源文件的配置
比如在src下建立了两个资源文件名为: globalMessages_en_US.properties和 globalMessages_zh_CN.properties,有两种配置方式
(1)在src文件夹中加入struts.properties文件,内容如下:
struts.custom.i18n.resources=globalMessages
(2)在struts.xml文件中添加
<constant name="struts.custom.i18n.resources" value="globalMessages"/>
之后我做了一个小小的例子,可是确出现了一个严重的错误。
在上述的两个资源文件里加入内容
在 globalMessages_en_US.properties写入HelloWorld=Hello World!
在globalMessages_zh_CN.properties写入HelloWorld=登录成功
新建一个名为Hello.jsp的页面
<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h2><s:text name="HelloWorld"/></h2>
</body>
</html>
然后运行,显示中文老是乱码,无论是更改文件保存格式,还是在jsp页面里增加显示的格式就是不对。后来终于找到一个高手,问了他怎么解决,原来是在globalMessages_zh_CN.properties里是不能出现中文的,因为视频上用了一个插件,把中文都转换成了ascii码了,而我没安那个插件,所以这样做当然会有乱码。
解决的方法(如果没有安插件的话):
在你安装的jdk里找到native2ascii.exe这个可执行文件,打开,然后把你要显示的中文字粘贴到里面,点回车,会出来一串字符,再把这串字符输入到globalMessages_zh_CN.properties这个文件里就可以了
2.几种资源文件
全局的资源文件 :通用性较强的的资源文件
包范围内的资源文件 :以模块的方式管理资源文件
使用Action范围的资源文件 :只能由指定的Action调用
使用<s:i18n>标志访问特定路径的properties文件
3.占位符的使用
4.多语言包的问题
今天有点晚了,先把它们列出来吧。就先写到这里好了!该走了,明天见呢!
首先是,struts2的国际化其实也是信赖了java的,因为在java里,一共提供了很多种语言,也就是说,只有java支持的这些语言,在struts2里才可使用,并且language和country的名字要和java里相对应。我这里有一个java程序,可以看看java里支持的语言。
package com;
import java.util.Locale;
public class LocalList {
public static void main(String[] args) {
Locale[] localelist=Locale.getAvailableLocales();
for (int i = 0; i < localelist.length; i++) {
System.out.println(localelist[i].getDisplayCountry()+" = "+localelist[i].getCountry()+" "+localelist[i].getDisplayLanguage()+" = "+localelist[i].getLanguage());
}
}
}
1.资源文件的配置
比如在src下建立了两个资源文件名为: globalMessages_en_US.properties和 globalMessages_zh_CN.properties,有两种配置方式
(1)在src文件夹中加入struts.properties文件,内容如下:
struts.custom.i18n.resources=globalMessages
(2)在struts.xml文件中添加
<constant name="struts.custom.i18n.resources" value="globalMessages"/>
之后我做了一个小小的例子,可是确出现了一个严重的错误。
在上述的两个资源文件里加入内容
在 globalMessages_en_US.properties写入HelloWorld=Hello World!
在globalMessages_zh_CN.properties写入HelloWorld=登录成功
新建一个名为Hello.jsp的页面
<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h2><s:text name="HelloWorld"/></h2>
</body>
</html>
然后运行,显示中文老是乱码,无论是更改文件保存格式,还是在jsp页面里增加显示的格式就是不对。后来终于找到一个高手,问了他怎么解决,原来是在globalMessages_zh_CN.properties里是不能出现中文的,因为视频上用了一个插件,把中文都转换成了ascii码了,而我没安那个插件,所以这样做当然会有乱码。
解决的方法(如果没有安插件的话):
在你安装的jdk里找到native2ascii.exe这个可执行文件,打开,然后把你要显示的中文字粘贴到里面,点回车,会出来一串字符,再把这串字符输入到globalMessages_zh_CN.properties这个文件里就可以了
2.几种资源文件
全局的资源文件 :通用性较强的的资源文件
包范围内的资源文件 :以模块的方式管理资源文件
使用Action范围的资源文件 :只能由指定的Action调用
使用<s:i18n>标志访问特定路径的properties文件
3.占位符的使用
4.多语言包的问题
今天有点晚了,先把它们列出来吧。就先写到这里好了!该走了,明天见呢!
 
                     
                    
                 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号