这一篇博文拖了蛮久了,现在先把它完成,结束struts2这个版块,当然这只是最基础的部分,做项目还需要更深的理解。下一个web后端的版块准备做Spring框架的学习~嗯,加油!

1. Struts2的国际化

1.1 程序国际化概述

   程序国际化已成为Web应用的基本要求。也就是为了方便来自世界各地的浏览者。Struts2国际化主要有JSP页面国际化、校验信息国际化以及Action信息国际化等。

1.1.1  java国际化的思想

  Java国际化的思想是将程序中的信息放在资源文件中,程序根据支持的国家以及语言环境,读取相应的资源文件。资源文件是key-value对,每个资源文件中的key是不变的,但是value则随不同的国家/语言变化。

  Java程序国际化主要通过两个类来完成:

  • java.util.Locale:用于提供本地信息,通常称它为语言环境。不同的语言,不同的国家和地区采用不同的Locale对象来表示;
  • java.util.ResourceBundle:该类称为资源包,包含特定的语言环境的资源对象

  为了实现java程序国际化,必须事先提供程序所需要的资源文件。其中key是程序使用的部分,而value是程序界面的显示

  资源文件的命名可以有以下3种方式:

  1. baseName.properties;
  2. baseName_language.properties;
  3. baseName_language_country.properties(一般用这种);

  baseName是资源文件的基本名称,有用户自由定义。但是language和country就必须为java语言所支持的语言和国家/地区代码。例如:中国大陆为:baseName_zh_CN.properties,美国为baseName_en_US.properties。

1.2 国际化步骤

1.2.1  Struts2中加载全局资源文件

 

  加载全局的资源文件的方式是通过在struts.xml文件中配置常量struts.custom.il8n.resources实现,该常量值为全局资源文件的baseName。

  一旦指定了全局资源文件,既可实现程序国际化。假设baseName为messageResource,则在struts.xml文件中配置如下一个常量:

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

  通过这种方式加载全局资源文件后,struts2应用就可以在所有地方取得这些资源文件了,包括JSP页面、Action和校验文件

1.2.2  国际化信息输出

(1) 输出方式

  国际化信息输出主要有以下几种方式:

  • 在JSP页面中输出

  在JSP页面中为了输出国际化信息,可以使用Struts2的<s:text.../>标签,该标签可以指定一个name属性,用以指定国际化资源文件中的key。

  • 在表单标签中输出

  通过key属性指定资源文件中的key,如:

<s:textfield name="realname" key="username"/>

<!--或者如下方法-->
<s:textfield name="realname" label="%{getText('username')}"/>
  • 在Action类中输出

  Action类可以继承ActionSupport,使用getText()方法取得国际化信息,该方法的第一个参数用于指定资源文件中的key。

  • 在校验文件中输出

  在校验文件中,可以通过message的key属性指定资源文件中的key,如:

<message key="login.error.username"/>

1.2.3 properties文件配置

  properties文件的配置,直接在src文件夹下面新建配置即可,注意是key-value形式存在的,

  归根到底,sturts2框架的最大特点还是在拦截器这一块,把拦截器配置和原理弄明白是很重要的。

JavaWeb框架_Struts2_(八)----->Struts2的国际化的更多相关文章

  1. JavaWeb框架_Struts2_(六)----->Struts2的输入校验

    1. 输入校验章节目录 输入校验概述 客户端校验 服务器端校验 手动编程校验 重写validate方法 重写validateXxx()方法 输入校验流程 校验框架校验 Struts2 内置的校验器 常 ...

  2. JavaWeb框架_Struts2_(五)----->Struts2的标签库

    1.  Struts2的标签库 1.1 Struts2标签库概述 Struts2的标签库可以分为以下3类:用户界面标签.非用户界面标签.AJAX标签; 2.1.1 Struts2标签库的分类和使用 1 ...

  3. JavaWeb框架_Struts2_(二)----->Struts2的核心配置

    2.  Struts2的核心配置 2.1  配置Struts.xml文件 2.1.1 Struts.xml文件 Struts2框架的核心配置文件是Struts.xml,该文件主要用来配置Action和 ...

  4. JavaWeb框架_Struts2_(一)----->Struts2 框架入门

    1.  框架入门 2.1  Struts2简介 (1). Struts2是一种基于MVC模式的的轻量级Web开发框架. MVC模式:MVC全名是Model View Controller,是模型(mo ...

  5. JavaWeb框架_Struts2_(三)---->Struts2的拦截器

    2. Struts2的拦截器(使用拦截器实现权限控制) 2.1 拦截器的概述 拦截器是Struts2的核心组成部分,它可以动态的拦截Action调用的对象,类似与Servlet中的过滤器.Struts ...

  6. JavaWeb框架_Struts2_(七)----->文件的上传和下载

    这个章节是Struts2框架应用最广泛的三个版块(上传下载.国际化.校验输入)之一,所以这一版块的学习还蛮重要的. 1. 章节目录 Struts2文件上传 单文件上传 拦截器实现文件过滤 文件上传常量 ...

  7. JavaWeb框架_Struts2_(四)----->表达式语言OGNL

      2. 表达式语言OGNL 2.1 OGNL简介 OGNL(Object-Graph Navigation Language)对象图导航语言的缩写,OGNL是一种表达式语言(Expression L ...

  8. JavaWeb框架之Struts2 ---- 系列学习

    JavaWeb框架_Struts2_(七)----->文件的上传和下载 JavaWeb框架_Struts2_(六)----->Struts2的输入校验 JavaWeb框架_Struts2_ ...

  9. struts2充分国际化案例 错误解决

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

随机推荐

  1. P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper

    题目描述 给出n个物品,体积为w[i],现把其分成若干组,要求每组总体积<=W,问最小分组.(n<=18) 输入格式: Line 1: N and W separated by a spa ...

  2. java 之 工厂模式(大话设计模式)

    在以前的文章里面讲述过简单工厂模式,见链接:http://www.cnblogs.com/zhuxiansheng/p/7873161.html 简单工厂模式解耦了客户端和实现的依赖,不过如果有再次扩 ...

  3. Fielddata is disabled on text fields by default. Set fielddata=true on [gender] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memor

    ES进行如下聚合操作时,会报如题所示错误: ➜ Downloads curl -XPOST 'localhost:9200/bank/_search?pretty' -d ' { "size ...

  4. 【魅族Pro7】——BootStrap/JQuery/Canvas/PHP/MySQL/Ajax爬坑之项目总结(一)

    前言:这个项目是我们小组团体合作完成的学习项目,项目使用魅族GUI设计和图片素材,响应式重构Pro7官网的首页.子页.商城及购物车,并加入一些创新.我主要负责的是[画屏子页]的项目,这里作为温故知新, ...

  5. Function Programming - 柯里化(curry)

    看到一篇非常不错的文章,这里分享给大家:http://www.jianshu.com/p/fa3568087881. 首先,柯里化的定义:你可以只透过部分的参数呼叫一个function,它会回传一个f ...

  6. SSM Spring+SpringMVC+mybatis+maven+mysql环境搭建

    SSM Spring+SpringMVC+mybatis+maven环境搭建 1.首先右键点击项目区空白处,选择new->other..在弹出框中输入maven,选择Maven Project. ...

  7. python网络编程之单线程之间的并发

    单线程之间的并发就是利用一个线程实现并发的效果,也就是利用了cup遇到阻塞的那段时间去做别的事情,从而提高了cup的利用率,使之在单个线程中就实现了并发的效果. 下面就是一个简单的服务端单个线程实现并 ...

  8. [转] linux系统中如何进入退出vim编辑器,方法及区别

    原文链接:http://www.cnblogs.com/crazylqy/p/5649860.html 在linux家族中,vim编辑器是系统自带的文本编辑器,其功能强大自不必说了. 偶有小白,刚接触 ...

  9. Android Weekly Notes Issue #286

    December 3rd, 2017 Android Weekly Issue #286 本期文章包含如何通过踩坑来学习Kotlin,以及利用Kotlin的data class做MVVM状态保存,还包 ...

  10. 51Nod 1001 数组中和等于K的数对 Set

    给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0 ...