Struts2国际化和文件上传
来源:互联网 发布:centos下lamp环境搭建 编辑:程序博客网 时间:2024/05/01 11:32
国际化(i18n)
国际化简称i18n,其来源是英文单词 internationalization的首末字符i 和n。18为中间的字符数。
随着全球经济的一体化,软件开发者应该开发出支持多国语言、国际化的Web应用。对于Web应用来说,同样的页面在不同的语言环境下需要显示不同的效果。
国际化文件的命名规则:
1、基本名.properties 如:message.properties
2、基本名_语言编码_国家编码.properties 如:message_zh_CN.properties, message_en_US.properties
其中语言编码和国家编码是固定的,可以在JDK中Locale类的常量中找到。
对于中文的属性文件,我们编写好后,应该使用jdk提供的native2ascii命令把文件转换为unicode编码的文件。命令的使用方式如下:
native2ascii 源文件.properties 目标文件.properties
Java中已经实现了国际化功能,struts2中只是对该功能进行了整合,以方便我们的使用。
Struts2中使用到国际化的地方有:
1、jsp页面的国际化;
2、Action信息国际化;
3、转换错误信息的国际化;
4、校验错误信息的国际化;
Struts2国际化文件分类:
1、全局范围国际化文件
2、包范围国际化文件
3、Action类范围国际化文件
全局范围国际化文件
在struts.xml中通过struts.custom.i18n.resources常量把资源文件定义为全局资源文件,如下:
<constant name="struts.custom.i18n.resources" value="message" />
其中message为资源文件的基本名
在src文件下建立message_zh_CN.properties文件
username=用户名
包范围国际化文件
在一个大型应用中,整个应用有大量的内容需要实现国际化,如果我们把国际化的内容都放置在全局资源属性文件中,显然会导致资源文件变的过于庞大、臃肿,不便于维护,这个时候我们可以针对不同模块,使用包范围来组织国际化文件。
在java的包下放置package_language_country.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源。
Action类范围国际化文件
当一些显示数据只会被某个action使用,这时候我们可以把这些显示数据定义在只能被该action访问的Action范围资源文件中。
为某个action指定资源文件,方法如下:
在Action类所在的路径,放置ActionClassName_language_country.properties资源文件,ActionClassName为action类的简单名称。
如果三篇文件都存在,执行顺序:
当查找指定key的消息时,系统会先从最小的Action类范围国际化文件中寻找;
如果没有找到对应的key,然后沿着当前包往上查找基本名为package 的资源文件,一直找到最顶层包;
如果还没有找到对应的key,最后会从常量struts.custom.i18n.resources指定的全局资源文件中寻找。
转换错误信息的国际化
在全局国际化文件中添加:
xwork.default.invalid.fieldvalue={0}错误信息
在Action范围内国际化文件中添加:
invalid.fieldvalue.字段名=专用错误信息
校验错误信息的国际化
<field name="username">
<field-validator type="requiredstring">
<message key="error.required"></message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">5</param>
<param name="maxLength">8</param>
<message key="error.length></message>
</field-validator>
如果要传参—国际化文件中书写:
国际化简称i18n,其来源是英文单词 internationalization的首末字符i 和n。18为中间的字符数。
随着全球经济的一体化,软件开发者应该开发出支持多国语言、国际化的Web应用。对于Web应用来说,同样的页面在不同的语言环境下需要显示不同的效果。
国际化文件的命名规则:
1、基本名.properties 如:message.properties
2、基本名_语言编码_国家编码.properties 如:message_zh_CN.properties, message_en_US.properties
其中语言编码和国家编码是固定的,可以在JDK中Locale类的常量中找到。
对于中文的属性文件,我们编写好后,应该使用jdk提供的native2ascii命令把文件转换为unicode编码的文件。命令的使用方式如下:
native2ascii 源文件.properties 目标文件.properties
Java中已经实现了国际化功能,struts2中只是对该功能进行了整合,以方便我们的使用。
Struts2中使用到国际化的地方有:
1、jsp页面的国际化;
2、Action信息国际化;
3、转换错误信息的国际化;
4、校验错误信息的国际化;
Struts2国际化文件分类:
1、全局范围国际化文件
2、包范围国际化文件
3、Action类范围国际化文件
全局范围国际化文件
在struts.xml中通过struts.custom.i18n.resources常量把资源文件定义为全局资源文件,如下:
<constant name="struts.custom.i18n.resources" value="message" />
其中message为资源文件的基本名
在src文件下建立message_zh_CN.properties文件
username=用户名
包范围国际化文件
在一个大型应用中,整个应用有大量的内容需要实现国际化,如果我们把国际化的内容都放置在全局资源属性文件中,显然会导致资源文件变的过于庞大、臃肿,不便于维护,这个时候我们可以针对不同模块,使用包范围来组织国际化文件。
在java的包下放置package_language_country.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源。
Action类范围国际化文件
当一些显示数据只会被某个action使用,这时候我们可以把这些显示数据定义在只能被该action访问的Action范围资源文件中。
为某个action指定资源文件,方法如下:
在Action类所在的路径,放置ActionClassName_language_country.properties资源文件,ActionClassName为action类的简单名称。
如果三篇文件都存在,执行顺序:
当查找指定key的消息时,系统会先从最小的Action类范围国际化文件中寻找;
如果没有找到对应的key,然后沿着当前包往上查找基本名为package 的资源文件,一直找到最顶层包;
如果还没有找到对应的key,最后会从常量struts.custom.i18n.resources指定的全局资源文件中寻找。
转换错误信息的国际化
在全局国际化文件中添加:
xwork.default.invalid.fieldvalue={0}错误信息
在Action范围内国际化文件中添加:
invalid.fieldvalue.字段名=专用错误信息
校验错误信息的国际化
<field name="username">
<field-validator type="requiredstring">
<message key="error.required"></message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">5</param>
<param name="maxLength">8</param>
<message key="error.length></message>
</field-validator>
如果要传参—国际化文件中书写:
error.length=The length of ${getText(fieldName)} should be in ${minLength} and ${maxLength} charactors!
文件上传
1、确认lib包中有: commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar
2、确认页面form表单上的提交方式为POST,enctype属性的值为“multipart/form-data”
3、在Action类中添加以下属性,
public class HelloWorldAction{
private File uploadImage;//得到上传的文件
private String uploadImageContentType;//得到文件的类型
private String uploadImageFileName;//得到文件的名称
public String execute(){
//基本I/O操作步骤即可
}
}
0 0
- Struts2国际化和文件上传
- Springmvc国际化和文件上传(八)
- Struts2中的文件上传和文件下载
- struts2的文件上传和文件下载
- struts2文件下载和文件上传
- struts2中文件上传与错误国际化
- MVC和文件上传
- java EE开发之Struts2第四章:国际化和文件上传下载
- J2EE系列之Struts2学习笔记(二十二)--Struts2多文件上传和文件下载
- 文件上传和文件下载
- ionic2拍照和文件上传
- github配置和文件上传
- 拦截器和文件上传
- 用struts2实现简单的注册流程和文件的上传
- Struts2中文件上传
- struts2中文件上传
- struts2中文件上传
- python ftp 文件上传和文件下载
- NG《Machine_Learning_Yearning》笔记
- Ubuntu安装微信教程 超简单的
- 交换两个整型变量的值
- 英语口语收集(三十三)
- 十五周—插入字符串
- Struts2国际化和文件上传
- 关于xcode8.0隐私权限上传打包文件在构建版本不显示的问题
- c++的异常机制
- Java入门第一季
- MySQL视图
- 英语口语收集(三十四)
- 提问的艺术
- JAVA设计模式之创建者模式
- openstack网络(二)