一、概述

  • 同一款软件 可以为不同用户,提供不同语言界面 ---- 国际化软件
  • 需要一个语言资源包(很多properties文件,每个properties文件 针对一个国家或者语言,通过java程序根据来访者国家语言,自动读取不同properties文件 )
  • 资源包编写
  • properties文件命名: 基本名称_语言(小写)_国家(大写).properties
  • 例如
  • messages_zh_CN.properties 中国中文
  • messages_en_US.properties 美国英文
  • ResourceBundle 根据不同Locale(地域信息),读取不同国家 properties文件
  • ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.US);

二、Struts2中国际化:

2.1 问题1

struts2中对国际化进行了封装,我们只需要根据其提供的API进行访问就可以。
【问题1】:在struts2中国际化时properties文件怎样定义?(怎样定义properties)

全局

  • 需要通过一个常量来声明.
  • struts.custom.i18n.resources=testmessages,testmessages2
  • 对于properties配置文件可以放置在任意位置
<!-- value中的值 代表message.properties在src下-->
<constant name="struts.custom.i18n.resources" value="message"> <!-- value中的值加上的包名,代表message.properties在com.hao.i18n.resource包下.-->
<constant name="struts.custom.i18n.resources" value="com.hao.i18n.resource.message">

局部

  • 1.针对于action类

    • 位置:与action类在同一个包下.
    • 名称:ActionClassName.properties.
    • 这个配置文件只对当前action有效。
  • 2.针对于package下所有action
    • 位置:在指定的包下
    • 名称:package.properties
  • 3.jsp页面临时使用某一个properties文件.
    • <s:i18n name="com.hao.action.package"></s:i18n>

2.2 问题2

【问题2】在struts2中国际化操作可以在哪些位置使用?(在哪此位置上使用)

  • 1.action类中使用
  • 2.配置文件中使用
  • 3.在jsp页面上使用

2.3 问题3

【问题3】怎样在struts2中操作国际化?(怎样使用)

  • 1.在action类中使用,前提:action类要继承ActionSupport类。使用getText(String name)就可以获取配置文件中对应名称的值。
  • 2.在validation.xml文件中使用,<message key="名称"/>
  • 3.在jsp页面上使用 ,<s:text name="名称"> 如果没有使用<s:i18n name="">来指定,会从全局配置文件中获取。如果要从某一个配置文件中获取,通过name属性来指定,包名.配置文件名称

2.4 问题4

【问题4】在struts2中国际化配置文件中使用动态文本

在Action中怎样使用

  • 配置文件中msg=hello world {0}
  • 通过这种方式获取 this.getText("msg",new String[]{"tom"})
  • 结果就是 hello world tom

在JSP页面上怎样使用

  • 配置文件中 msg=hello world {0}
  • Jsp中
<s:i18n name="com.hao.action.I18nDemo1Action">
<s:text name="msg">
<s:param>张三</s:param>
</s:text>
</s:i18n>
  • 结果就是 hello world 张三.

【Struts2】 国际化的更多相关文章

  1. struts2国际化

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

  2. 【转】Struts2国际化

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

  3. (六)Struts2 国际化

    所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:国际化简介 国际化(Internationlization),通俗地讲, ...

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

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

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

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

  6. struts2学习(10)struts2国际化

    一.国际化简介: 二.struts2国际化设置: struts.xml: <?xml version="1.0" encoding="UTF-8" ?&g ...

  7. Struts2国际化-getText()方法

    转自https://blog.csdn.net/qq_43560838/article/details/83747604 一:简单理解 国际化简称i18n,其来源是英文单词 international ...

  8. [JavaWeb基础] 016.Struts2 国际化配置

    如果一个软件想要让其受众是全球或者是几个国家的人,那么这个软件就需要支持多种语言,那么我们就需要软件的国际化去对一些文字信息进行国际化处理.web也一样,当外国人打开我们的网站,要是看到满屏幕的中文, ...

  9. struts2 国际化

    国际化概述: 软件国际化:一个软件根据来访者地区不同,显示不同语言. 国际化: * 必须有一组资源包: * 一组属性文件命名: 基本名称_语言(小写)_国家(大写).properties * 如:me ...

  10. java学习笔记 (9) —— Struts2 国际化

    1.Test.java package com.i18n; import java.util.Locale; public class Test1 { public static void main( ...

随机推荐

  1. logback 和 log4j对比,及相关配置

    Logback 一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和log ...

  2. sizeof与strcpy的区别

    转自:http://c.biancheng.net/view/342.html 表面上看strcpy和sizeof都是求字符串的长度,但是二者却存在着许多不同之处及本质区别 strlen是一个函数,用 ...

  3. C语言字符串之无重复字符的最长子串

    题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 输入: "abcabcbb" 输出: 解释: 因为无重复字符的最长子串是 . 输入: " ...

  4. 记录一次SignalR服务端实现过程

    前言:最近手上一个项目需要后端实时推送数据到前端,第一个想到的就是微软的SignalR,由于之前都是平时没事写的Demo,没有用到实际项目中,这次恰好用到了,因此记录下来整个实现过程(网上也有很多类似 ...

  5. XKC's basketball team【线段树查询】

    XKC , the captain of the basketball team , is directing a train of nn team members. He makes all mem ...

  6. Netty学习篇①

    什么是netty Netty封装了JDK自带的NIO,运用起来更加简单快速,Netty是一个异步事件驱动的网络应用框架,让开发更加简便 Netty相比JDK自带的NIO的优点 Netty的api调用简 ...

  7. [OpenCV] sift demo

    运行环境:vs2012+opencv320 sift 需要的头文件为 <opencv2/xfeatures2d.hpp> #include <opencv2/opencv.hpp&g ...

  8. Windows 与 linux文件相互传输的方法

    公司里面办公机器大部分都是 windows 但是现在随着云计算.docker.linux等的越来越兴起,需要大量的操作linux服务器. 最重要和最直接的需要将windows 上面的文件上传到 lin ...

  9. [转帖]Linux cpufreq 机制了解

    Linux cpufreq 机制了解 https://www.cnblogs.com/armlinux/archive/2011/11/12/2396780.html 引用文章链接: http://w ...

  10. java微信token校验

    1.微信验证接口 package com.park.utils.wechatUtil; import org.springframework.web.bind.annotation.RequestMa ...