转自https://blog.csdn.net/qq_43560838/article/details/83747604

一:简单理解

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

浏览器显示为:

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

浏览器显示为

Struts2国际化-getText()方法的更多相关文章

  1. struts2国际化

    struts2国际化 1:什么是国际化? 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素 ...

  2. ActionSupport.getText()方法 以及 js中:<s:text name="" />

    下面略述com.opensymphony.xwork2.ActionSupport.getText()方法 public String getText(String aTextName) 说明:Get ...

  3. struts2国际化全例 错误解决

    在struts2中需要做国际化的有: jsp页面的国际化,action错误信息的国际化,转换错误信息的国际化,校验错误信息的国际化 在之前的例子中已经做过和国际化相关的例子了,在struts.xml中 ...

  4. 菜鸟学SSH(三)——Struts2国际化自动检测浏览器语言版

    前几天发了一篇Struts国际化的博客——<菜鸟学习SSH(二)——Struts2国际化手动切换版>,有网友提了一个意见,见下图: 于是就有了下面修改的版本: web.xml <?x ...

  5. 【Struts2学习笔记(12)】Struts2国际化

    (1)准备资源文件,资源文件的命名格式例如以下: baseName_language_country.properties baseName_language.properties baseName. ...

  6. 06章 Struts2国际化

    1:什么是国际化? 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素.换言之,应用程序的功 ...

  7. 【转】Struts2国际化

    原文章:http://www.cnblogs.com/hellokitty1/p/5083663.html 简单理解     国际化简称i18n,其来源是英文单词 internationalizati ...

  8. struts2国际化相关问题

    国际化资源文件的方式: Action范围的 包范围的 临时的 全局的(推荐) 一.配置全局的国际化资源文件 1.在类路径下,创建国际化资源文件 baseName.properties baseName ...

  9. 笔记:Struts2 国际化

    视图页面的国际化 在JSP页面中指定国际化资源需要借助<s:i18n-/>标签,如果把<s:i18n-/>标签作为<s:test-/>标签的父标签,则会直接加载父标 ...

随机推荐

  1. nodejs 中使用 ftp

    转自原文 nodejs 中使用 ftp 1.  npm install ftp 项目 https://github.com/mscdex/node-ftp 2.  转自 http://www.open ...

  2. 343D/Codeforces Round #200 (Div. 1) D. Water Tree dfs序+数据结构

    D. Water Tree   Mad scientist Mike has constructed a rooted tree, which consists of n vertices. Each ...

  3. Mysqldump逻辑备份与恢复

    文档结构: mysqldump备份影响性能,可能会把内存里面的热数据给冲刷掉,5.7后,新增一个参数,innodb_buffer_pool_dump_pct,控制每个innodb_buffer中转存活 ...

  4. 关于javascript 与iOS交互的简单使用

    关于导入 JavaScriptCore 这个就不说了 js交互我们首先用到webView与webView的代理 基本上是很简单,,不过后台10分的坑 以下是代码 在webView的加载完成里面 fun ...

  5. git工作中常用命令-工作中踩过的坑

    踩坑篇又来啦,这是我在工作中从git小白进化到现在工作中运用自如的过程中,踩过的坑,以及解决办法. 1.基于远程develop分支,建一个本地task分支,并切换到该task分支 git checko ...

  6. 你不知道的JavaScript(二)数组

    作为一种线性数据结构,几乎每一种编程语言都支持数组类型.和c++.java这些强类型的语言相比,JavaScript数组有些不同,它可以存放任意类型的值.上节中有提到过JS中任意类型的值都可以赋值给任 ...

  7. (转载)7个去伪存真的JavaScript面试题

    7个去伪存真的JavaScript面试题 上周,我发表了<C#程序员的7个面试问题>.这次我要说的是如何淘汰那些滥竽充数的JavaScript程序员. 作者:小峰来源:码农网|2015-0 ...

  8. Codeforces 845C. Two TVs 思路:简单贪心算法

    题目: 题目原文链接:http://codeforces.com/contest/845/problem/C 题意:现在我们有一个电视清单,有两个电视,电视清单上有每一个节目的开始时间和结束时间. 电 ...

  9. Android APP 调试过程中遇到的问题。

    调试过过程中APP安装完启动后有的时候会异常退出,报这个错误.有的时候可以直接启动.查找不到原因.网上说把commit方法替换成commitAllowingStateLoss() 也无效. Andro ...

  10. OpenGL编程(六)通过三角形绘画出3D模型

    使用三角形绘制3D模型 三角形是基本的多边形,任何多变形都能由三角形组成.三角形是由三个顶点的连线组成.三个点分别是v0:v1:v2. 1.绕法 从某个顶点开始,有两种连线的方法,顺时针和逆时针,这是 ...