【struts2】struts2国际化

说明

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

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

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>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值