Struts2之国际化
时间:2017-1-11 11:12
——国际化
Struts2已经对国际化进行了封装,我们只需要根据其提供的API进行访问即可。
要使用国际化的Action必须继承ActionSupport。
1、什么是国际化
同一款软件可以为不同用户提供不同语言界面。
2、国际化原理
需要一个语言资源包,包含很多properties文件,每个properties文件针对一个国家或一种语言,通过Java程序根据来访者国家语言,自动读取不同的properties文件。
3、读取properties文件
ResourceBundle根据不同Locale(地域信息),读取不同国家的properties文件。
ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.US);
4、在Struts2中国际化properties文件如何定义
命名规范:基本名称_语言(小写)_国家(大写).properties
例如:
messages_zh_CN.properties
messages_en_US.properties
1)全局
文件可以放在项目的任何位置。
需要通过一个常量来声明。
在default.properties文件中有一行定义常量:(默认是被注释的)
# struts.custom.i18n.resources=testmessages,testmessages2
在struts.xml文件中声明:
<!-- 声明一个全局的国际化文件 -->
以上路径表示properties文件在src目录下,如果在包中,需要写包名:
value="com.wyc.i18n.message"
2)局部
* 针对Action类:
> 与Action类在同一包下
> 名称:ActionClassName.properties
> 这个配置文件只对当前Action有效
* 针对package下所有Action
> 当多个Action需要使用同一个国际化信息,可以使用该方法,该方法对包中所有Action有效。
> 命名:package.properties
> 位置:在指定的包中
* jsp页面临时使用某一个properties文件
> 声明一个properties文件
> 在JSP页面中导入Struts2标签库
> 使用标签:<s:i18n name="包名.资源文件名"></s:i18n>
5、Struts2中国际化可以在哪些位置可以使用
1)在Action类中使用
2)在配置文件中使用
validation.xml文件
3)在JSP页面中使用
6、怎样在Struts2中操作国际化
1)在Action类中使用
* 继承ActionSupport
* 通过getText(String key)方法就可以获取配置文件中对应名称的属性值。
示例代码:
public class I18nDemo1Action extends ActionSupport {
输出:hello world
2)在validation.xml文件中
* 在同包下创建一个package.properties文件(必须是package开头)
* 在<message key="属性名"/>标签中使用key来获取值。
示例代码:
3)在JSP页面中使用
可以使用<s:i18n name="包名.资源名"><s:text name="key"/></s:i18n>来指定从某一个资源文件中获取属性值。
如果没有使用<s:i18n>指定资源文件名,而是直接使用<s:text>来获取,会从全局配置文件中获取。
示例代码:
<s:i18n name="com.wyc.action.package">
7、在Struts2的国际化配置文件中使用动态文本
1)Action中怎样使用
* 在properties文件中配置
> msg=hello world {1} {0} // 0 1 表示数组下标
* 在Action类中使用
> System.out.println(this.getText("msg", new String[]{"zhangsan", "lisi"}));
2)JSP页面中怎样使用
* 在properties文件中配置
> msg=hello world {1} {0} // 0 1 表示数组下标
* 在JSP页面中使用
<s:i18n name="com.wyc.action.I18nDemo1Action">
页面中会输出:hello world 张三 王五
——总结
1、如何定义配置文件
* 局部
* 全局
2、在哪里使用
* Action
* JSP
* 校验配置文件
3、怎么使用
* Action类继承ActionSupport
> 使用getText()方法获取。
* 使用struts2标签
> <s:i18n>
* 在配置文件中:
> <message key="">
4、怎样处理动态文本
Struts2之国际化的更多相关文章
- 十四、Struts2的国际化
十四.Struts2的国际化 1.配置全局国际化消息资源包 配置全局消息资源包 <!--配置全局消息资源包 --> <constant name="struts.c ...
- JavaWeb框架_Struts2_(八)----->Struts2的国际化
这一篇博文拖了蛮久了,现在先把它完成,结束struts2这个版块,当然这只是最基础的部分,做项目还需要更深的理解.下一个web后端的版块准备做Spring框架的学习-嗯,加油! 1. Struts2的 ...
- struts2使用拦截器完成登陆显示用户信息操作和Struts2的国际化
其实学习框架,就是为了可以很好的很快的完成我们的需求,而学习struts2只是为了替代之前用的servlet这一层,框架使开发更加简单,所以作为一个小菜鸟,特别感谢那些超级无敌变态开发的框架供我们使用 ...
- struts2 资源国际化
web.xml: <?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp ...
- Struts2的国际化入门
Struts2的国际化入门 Struts2国际化是建立在Java国际化的基础上的,一样是通过提供不同国家/语言环境的消息资源,然后通过ResourceBundle加载指定Locale对应的资源文件,再 ...
- 浅谈struts2的国际化----i18n
可能大家在使用struts框架的时候,偶尔会看到这个词: i18n.也就是 Internationalization i 开头,n 结尾. 总共18个字母,今天的主要内容就是环绕这 四个字母. ...
- 【Struts2】 国际化
一.概述 二.Struts2中国际化: 2.1 问题1 全局 局部 2.2 问题2 2.3 问题3 2.4 问题4 在Action中怎样使用 在JSP页面上怎样使用 一.概述 同一款软件 可以为不同用 ...
- (十四)struts2的国际化
一.国际化的概念 国际化是指web程序在运行时,根据客户端请求的国家.语言的不同而显示不同的界面. 例如,如果请求来自中文客户端,则页面的显示,提示信息等都是中文,如果是英文客户端,则显示英文信息. ...
- Struts2 internationalization(国际化)
1:什么是国际化? 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素.换言之,应用程序的功 ...
随机推荐
- SpringBoot 无法注入 service 的 bean
错误信息 Description: Field areaService in com.imooc.demo.web.AreaController required a bean of type 'co ...
- 【对线面试官】Kafka基础入门
<对线面试官>系列目前已经连载33篇啦,这是一个讲人话面试系列 [对线面试官]Java注解 [对线面试官]Java泛型 [对线面试官] Java NIO [对线面试官]Java反射 &am ...
- Xmanager7 xshell7 xftp7安装破解教程
NetSarang Xmanager7 Power Suite是可以浏览远端X窗口系统的软件,远程把Unix/Linux的桌面无缝地带到Windows桌面上.旗下的Xshell Xftp插件是一款常用 ...
- Linux从头学05-系统启动过程中的几个神秘地址,你知道是什么意思吗?
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...
- WebRTC 用例和性能
WebRTC 用例和性能 实现低延迟.点对点传输是一项艰巨的工程挑战:有 NAT 遍历和连接检查.信令.安全.拥塞控制和无数其他细节需要处理.WebRTC 代表我们处理以上所有内容,这就是为什么它可以 ...
- Scrapy入门到放弃04:下载器中间件,让爬虫更完美
前言 MiddleWare,顾名思义,中间件.主要处理请求(例如添加代理IP.添加请求头等)和处理响应 本篇文章主要讲述下载器中间件的概念,以及如何使用中间件和自定义中间件. MiddleWare分类 ...
- ASP.NET Core下FreeSql的仓储事务
ASP.NET Core下FreeSql的仓储事务 第一步:配置 Startup.cs 注入 引入包 dotnet add package FreeSql dotnet add package Fre ...
- 【PTA|Python】浙大版《Python 程序设计》题目集:第二章
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...
- PCE | 华中农大郭亮团队蛋白质组学揭示油菜内源氧化还原修饰介导盐胁迫响应
蛋白质翻译后修饰(PTM)在控制植物生长发育以及逆境适应方面发挥着重要的作用.发生在半胱氨酸巯基的亚磺酰化修饰(R-SOH)是一种可逆的氧化修饰类型,可以通过与其他修饰形态形成二硫键的形式来保护蛋白不 ...
- RHCSA_DAY02
Linux:一切皆文件 分区:/boot:做引导盘 /swap:虚拟内存----最大20gb /data:自己放文件用 /:根分区 - 图形界面: - Ctrl+Shift +号 //调整命令 ...