这一篇博文拖了蛮久了,现在先把它完成,结束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. C# 处理Word自动生成报告 二、数据源例子

    还是以学生.语文.数学.分数为例吧, 感觉这个和helloworld都有一拼了. 造一张表如下, 整张报表就围绕这个表转圈了, 顺便说下就是名字如有雷同纯属巧合 新建个存储过程 ALTER PROCE ...

  2. 智能合约开发环境搭建及Hello World合约

    如果你对于以太坊智能合约开发还没有概念(本文会假设你已经知道这些概念),建议先阅读入门篇. 就先学习任何编程语言一样,入门的第一个程序都是Hello World.今天我们来一步一步从搭建以太坊智能合约 ...

  3. Asp.Net MVC 捆绑(Bundle)

    Asp.Net MVC 捆绑(Bundle) 大多数浏览器会对同一域名的请求限制请求数量,一般是在8个以内.每次最多可以同时请求8个,要是资源多于8个,那么剩下的就要排队等待请求了.所以为了提高首次加 ...

  4. Makefile Android.mk 引发的思索

    在我们编写 Android 平台 cocos2d-x 游戏的时候,我们除了编写 Classes 之内的源代码文件之外,我们还需要维护其编译文件 Android.mk,如我们在 Classes 添加新的 ...

  5. openGL光源概念

    1. 光照模型      环境光——经过多次反射而来的光称为环境光,无法确定其最初的方向,但当特定的光源关闭后,它们将消失. 全局环境光——每个光源都能对场景提供环境光.此外,还有一个环境光,它不来自 ...

  6. python学习笔记 函数

    形式: def function(a,b,c=0,*args,**kw)#a,b必选参数,*args可变参数,**kw关键字参数 1.函数的返回值可以是多个参数.多个参数时,实际上返回的是一个tupl ...

  7. C#设计模式之十八中介者模式(Mediator Pattern)【行为型】

    一.引言 今天我们开始讲“行为型”设计模式的第五个模式,该模式是[中介者模式],英文名称是:Mediator Pattern.还是老套路,先从名字上来看看.“中介者模式”我第一次看到这个名称,我的理解 ...

  8. Flex布局学习笔记

    任何元素都可以使用Flex布局,包括行内元素 display: flex; display: inline-flex使用Flex布局之后,子元素的float, clear, vertical-alig ...

  9. spring cloud feign不支持@RequestBody+ RequestMethod.GET,报错

    1.问题梳理: 异常:org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not ...

  10. JavaScript OOP(一)之构造函数与new命令

    面向对象编程:Object Oriented Programming,简称OOP. 典型的oop语言,如hava.c++,存在着类的概念,类就是对象的模板 (类可以类比为人类:而实例化类后变为对象,对 ...