一:简单理解

国际化简称i18n,其来源是英文单词 internationalization的首末字符i 和n。18为中间的字符数。

随着全球经济的一体化,软件开发者应该开发出支持多国语言、国际化的Web应用。对于Web应用来说,同样的页面在不同的语言环境下需要显示不同的效果。

国际化文件的命名规则:

1、基本名.properties 如:message.properties

2、基本名_语言编码_国家编码.properties 如:message_zh_CN.properties, message_en_US.properties 其中语言编码和国家编码是固定的,可以在JDK中Locale类的常量中找到。

Java中已经实现了国际化功能,struts2中只是对该功能进行了整合,以方便我们的使用。

Struts2中使用到国际化的地方有: 1、jsp页面的国际化; 2、Action信息国际化; 3、转换错误信息的国际化; 4、校验错误信息的国际化;

Struts2国际化文件分类: 1、全局范围国际化文件 2、包范围国际化文件 3、Action类范围国际化文件。

全局范围国际化文件:

编写一个messages_zh_CN.properties和messages_en_US.properties放在src下。

我在这里配置了两个属性:

messages_en_US:

login.username=username
login.password=password

messages_zh_CN:

login.username=\u767B\u5F55\u7528\u6237\u540D
login.password=\u767B\u5F55\u5BC6\u7801

在struts.xml中通过struts.custom.i18n.resources常量把资源文件定义为全局资源文件:

eg:

<!-- 配置struts2国际化 value是国际化资源基本名message-->
            <constant name="struts.custom.i18n.resources" value="messages_en_US"/>

或者

<constant name="struts.custom.i18n.resources" value="messages_zh_CN"/>

(java代码中)国际化获取配置文件值使用:getText("键")

eg:getText("login.username")  ---------》username。

或者

getText("login.username") ------------>登录用户名。

在jsp页面中使用国际化。这里需要使用标签:<s:i18n>标签

eg:

 1  <!-- 局部定义使用哪一种国际化语音 -->
 2    <s:i18n name="messages_zh_CN">
 3    <form action="<%=basePath%>login.action" method="post">
 4              <table>
 5                <tr>
 6                  <td><s:text name="login.username"/></td>
 7                  <td><input type="text" name="user.userName"/></td>
 8                </tr>
 9                <tr>
10                  <td><s:text name="login.password"/></td>
11                  <td><input type="text" name="user.password"/></td>
12                </tr>
13                <tr>
14                 <td colspan="2"><input type="submit" value="<s:text name="login"/>"/></td>
15               </tr>
16              </table>
17     </form>
18    </s:i18n> 

浏览器显示为:

 1  <!-- 局部定义使用哪一种国际化语音 -->
 2    <s:i18n name="messages_en_US">
 3    <form action="<%=basePath%>login.action" method="post">
 4              <table>
 5                <tr>
 6                  <td><s:text name="login.username"/></td>
 7                  <td><input type="text" name="user.userName"/></td>
 8                </tr>
 9                <tr>
10                  <td><s:text name="login.password"/></td>
11                  <td><input type="text" name="user.password"/></td>
12                </tr>
13                <tr>
14                 <td colspan="2"><input type="submit" value="<s:text name="login"/>"/></td>
15               </tr>
16              </table>
17     </form>
18    </s:i18n> 

浏览器显示为

新技术在不断的更新,该文章仅供参考!(最近好像在准备淘汰Struts)

转载于:https://www.cnblogs.com/hellokitty1/p/5083663.html

Struts2国际化相关推荐

  1. struts2 国际化

    概述 Struts2 国际化是建立在 Java 国际化基础上的: - 为不同国家/语言提供对应的消息资源文件 - Struts2 框架会根据请求中包含的 Locale 加载对应的资源文件 - 通过程序 ...

  2. struts2系列(四):struts2国际化的多种方式

    一.struts2国际化原理 根据不同的Locale读取不同的文本. 例如有两个资源文件: 第一个:message_zh_CN.properties 第二个:message_en_US.propert ...

  3. Struts2-16.Struts2国际化

    16.1什么是国际化.本地化 国际化: 国际化(Internationalization,i18n)是程序在不做任何修改的情况下,就可以根据当地的语言和格式习惯显示字符. 本地化: 一个国际化程序,当 ...

  4. Struts2国际化标签 i18n

    配置xml文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLI ...

  5. java struts2国际化代码下载_【Java框架】java struts2框架中页面表示国际化的方法 - 思诚科技...

    在struts2框架中,前端页面表示国际化的实现更加简单.简单的应用struts2框架提供的支持国际化的表达式即可快速方便的进行页面的国际化的实现.如何做呢?本文以英文和中文为例进行说明. 1,自定义 ...

  6. struts2 国际化资源文件自定义的路径解决方法

    struts2 的版本2.3.4 <!-- 配置国际化资源路径 --> <constant name="struts.custom.i18n.resources" ...

  7. Struts2国际化——完整实例代码

    一.介绍 国际化Internationalization的首末字符I和N之间字符数是18,简称I18N "国际化"是指一个应用程序在运行时,能够根据客户端请求所来自国家或地区语言的 ...

  8. struts2 国际化 cookie保存语言, 下次访问时显示当前设置的语言

    最近在看struts2的国际化, i18n拦截器代码很简单, 具体是根据访问参数和session方式来控制语言, 其实每次都更改语言还是很麻烦的, 特别做了一个Cookie保存当前语言设置, 仅仅一个 ...

  9. Struts2 国际化

    国际化配置文件分为: 全局资源文件 包范围资源文件 Action类的资源文件 一.全局资源文件: 1.放到WEB-INF/classes目录下. 资源文件的命名规则:  文件名前缀.语言种类.prop ...

最新文章

  1. oracle跨库 导库,Oracle 用dblink 跨库导数据
  2. python 安装opencv linux opencv 查看版本
  3. 我在神策做研发丨做冲在前方的第一方队,造中国最好的开源 SDK
  4. 开漏(open drain)和开集(open collector)
  5. ecshop每个商品添加去淘宝购买链接
  6. 浏览器加载渲染HTML、DOM、CSS、 JAVASCRIPT、IMAGE、FLASH、IFRAME、SRC属性等资源的顺序总结...
  7. 运行Docker时不加sudo
  8. 一个数的约数(个数。约数和)
  9. NG2-我们创建一个可复用的服务来调用英雄的数据
  10. navicat中如何查看mysql日志_如何查看 Navicat Premium 日志文件
  11. 杭电多校第八场05_Separated Number(组合数前缀和性质)
  12. ENVI基本操作之彩色合成
  13. DINO 自监督算法简介
  14. solidworks2014激活失效该怎么办?
  15. 分子遗传学重点(可缩印)
  16. 二手平台android界面,Android二手书交易app设计(2)启动图Activity
  17. python中for in的用法python中for in的用法
  18. 绝地求生——PUBG吃鸡游戏模糊,画质很差
  19. 小提琴机器人拉法_好和弦 | [Ep.195]小提琴跟中提琴到底有多少种拉法?
  20. 美国国防高级研究计划局(DARPA)组织管理运行机制分析

热门文章

  1. UVA 12298——Super Poker II
  2. SecurtCRT连接服务器自动断开
  3. H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
  4. truncate、rename函数的使用
  5. 程序员经验分享:Android高级工程师系列学习路线介绍,面试必备
  6. Android strings.xml中定义字符串显示空格
  7. linux 问题一 apt-get install 被 lock
  8. Lua初学习 9-12 基础
  9. 考研编程练习----排名
  10. C语言再学习——分支结构