【struts2】赵雅智_struts2国际化

来源:互联网 发布:网络商品直销 编辑:程序博客网 时间:2024/06/05 06:07

说明

一个系统的国际化就是根据操作系统的语言,页面上的表现形式发生相应的变化。

比如如果操作系统是英文,页面的文字应该用英语,如果操作系统是中文,页面的语言应该是中文。

IE浏览器设置语言环境:

Win8系统:

IE -->工具-->Intener选项--->语言--->设置语言首选项--->添加

就可实现添加

普通国际化

资源文件的命名规则:

  • 默认的命名为:
    • 文件名前缀.properties
  • 根据语言的命名为:
    • 文件名前缀.语言种类.properties

例如:

  • 默认:resource.properties

内容:

item.username=username

item.password=password


  • 中文:resource_zh_CN.properties

内容:

item.username=用户名

item.password=密码


      英文:resource_en_US.properties

内容:

item.username=username_en

item.password=password_en

转换:

  对于中文的属性文件,我们编写好后,应该使用jdk提供的native2ascii命令把文件转换为unicode编码的文件。命令的使用方式如下:

       native2ascii  源文件.properties  目标文件.properties

但是 Myeclipse智能,自动转化。


告诉struts2基础名称

配置常量>struts.xml文件中配置如下:


配置文件位于src路径下

位于src下面:

文件内如如下:


启动tomcat  加载资源文件:

如果配置文件位于包中:


那么在struts.xml文件中怎么配置:

  

hbsi就是基础名称

那么在jsp页面中怎么获取国际化的标签值:

action中怎么获取 其值  getText();

  


输出带占位符的国际化信息

如果在配置文件中有占位符的情况下 怎么处理国际化:

资源文件中的内容如下:

wel= {0},欢迎来到CSDN乐知学院{1}

jsp页面中输出带占位符的国际化信息

<s:text name="wel">

    <s:param><s:property value="realname"/></s:param>

<s:param>学习</s:param>

</s:text>

action中:

代码


输出效果

包范围资源文件

在一个大型应用中,整个应用有大量的内容需要实现国际化,如果我们把国际化的内容都放置在全局资源属性文件中,显然会导致资源文件变的过于庞大、臃肿,不便于维护,这个时候我们可以针对不同模块,使用包范围来组织国际化文件。

方法如下:

java的包下放置package_language_country.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源。当查找指定key的消息时,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.custom.i18n.resources指定的资源文件中寻找。

例如:

注意:

   必须是先访问到这个action 才能够使用这个包中的国际化文件

Action范围资源文件

我们也可以为某个action单独指定资源文件,方法如下:

Action类所在的路径,放置ActionClassName_language_country.properties资源文件,ActionClassNameaction类的简单名称。

当查找指定key的消息时,系统会先从ActionClassName_language_country.properties资源文件查找,如果没有找到对应的key,然后沿着当前包往上查找基本名为package 的资源文件,一直找到最顶层包。如果还没有找到对应的key,最后会从常量struts.custom.i18n.resources指定的资源文件中寻找。

JSP中直接访问某个资源文件

利用struts2 提供i18n标签输出国际化信息


struts2为我们提供了<s:i18n>标签,使用<s:i18n>标签我们可以在类路径下直接从某个资源文件中获取国际化数据,而无需任何配置:

<s:i18n name=csdn">

    <s:text name=welcome/>

</s:i18n>

csdn为类路径下资源文件的基本名。

如果要访问的资源文件在类路径的某个包下,可以这样访问:

<s:i18n name=cn/csdn/action/package">

   <s:text name="welcome">

   <s:param>小张</s:param>

   </s:text>

</s:i18n>

上面访问cn.csdn.action包下基本名为package的资源文件。

文件上传案例解析:

l 在上传的过程中,如果出现错误,则系统会自动跳转到input指向的页面。这点也可以从FileUploadInterceptor源代码中看出来。


l 在input参数指定的页面中,编写<s:fielderror></s:fielderror>可以看到错误的信息。但是是英文的。如:不能上传一个类型错误信息为:

Content-Type not allowed: upload "xwork-2.1.6-src.zip" "upload_6fff0830_13174e12471__8000_00000000.tmp" application/x-zip-compressed

有关文件上传的错误信息:

位于:org.apache.struts2包下的struts-messages.properties

这个信息的组成查看org.apache.struts2包下的struts-messages.properties文件。在这个文件中,有三个键值对:

{0}:代表页面上<input name=”upload” type=”file”/>中的name的值

{1}:代表文件上传的名称

{2}:文件保存在临时目录的名称。

临时目录为work\Catalina\localhost\struts_upload_interceptor

{3}:代表文件上传类型,或者文件上传大小。上面的错误代表文件上传类型。如果报第一个错误,则代表文件上传大小。

如果报错了,显示的是英文,怎么样才能显示中文呢?

     步骤:

1、 建立一个properties文件。这个文件的名称可以任意取。

2、 在这个配置文件中,添入如下的内容:

struts.messages.error.file.too.large=文件超过了规定的大小: {0} "{1}" "{2}" {3}

struts.messages.error.content.type.not.allowed=该类型不允许被上传: {0} "{1}" "{2}" {3}

struts.messages.error.file.extension.not.allowed=不能上传该扩展名类型的文件: {0} "{1}" "{2}" {3}

3、 在struts-upload.xml中,指定配置文件的位置

<constant name="struts.custom.i18n.resources" value="cn.itcast.struts2.action.upload.fileuploadmessage"></constant>

如果配置文件放在src下,则这样指定:

<constant name=”struts.custom.i18n.resources” value=”fileuploadmessage”></constant>

作业:实现文件上传的国际化错误信息提示。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 当你的爱人不再爱的时候该怎么办 基督徒的婚姻不是上帝的旨意怎么办 音乐酒吧客人老是要上台唱歌怎么办 高一孩子学习没有动力家长怎么办 我不想当公司监事法人不同意怎么办 领导让我当组长我不想当怎么办 如果你是班委你不想当了怎么办 孩子读初一爱和同学打架怎么办 陌陌情感连线部分功能被限制怎么办 华为荣耀7x密码忘了怎么办 华为荣耀7x应用锁密码忘了怎么办 同学群里有人发低俗信息怎么办 小孩读英语绘本大人不会翻译怎么办 东西掉到手刹缝里面了怎么办 泰拉瑞亚猩红之地蔓延到家里怎么办 三星r.467玩dnf闪退怎么办 美团外卖不小心撞到汽车怎么办 如果你在战场上遇到华裔美军怎么办 衣服洗完了干了后发黄怎么办 毛衣起球怎么办学会这几个小妙招 小车没电了打不着火怎么办 老婆花钱大手大脚又要我给钱怎么办 住酒店手机id被劫持了怎么办 孩子老是送玩具给别的小朋友怎么办 老板总想和我谈人生怎么办gl 导师让用师姐的数据写论文怎么办 签了平面模特协议想违约怎么办 福州96年以前社保手册丢了怎么办 被老师缴的手机弄没了怎么办 户口在成都医保在德阳生孩子怎么办 微课掌上通看不到孩子班级圈怎么办 微课掌上通的录音错误是怎么办 微课视频录制ppt里面音乐怎么办 老师在街上和别人吵起来了怎么办 手机录屏传到爱剪辑变成竖屏怎么办 尔雅通识课程考试忘记做了怎么办 尔雅通识课过了课程完成时间怎么办 微信账号没冻结登录不了怎么办 微信解封电话号码没有电话号怎么办 ps中智能对象不能直接编辑怎么办 工资低奖金高银行流水不够怎么办