这一篇博文拖了蛮久了,现在先把它完成,结束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. ASP.NET Core 认证与授权[7]:动态授权

    ASP.NET Core 中基于策略的授权旨在分离授权与应用程序逻辑,它提供了灵活的策略定义模型,在一些权限固定的系统中,使用起来非常方便.但是,当要授权的资源无法预先确定,或需要将权限控制到每一个具 ...

  2. MatlabR2015b用了一段时间之后需要重新激活

    问题描述:MatlabR2015b安装成功,用了一段时间之后需要重新激活,按照http://www.cr173.com/soft/490645.html教程,无法激活成功,卸载重新安装也不行. 解决方 ...

  3. Android Context讲解(转)

    博客出处 前言:本文是我读<Android内核剖析>第7章 后形成的读书笔记 ,在此向欲了解Android框架的书籍推荐此书. 大家好, 今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友 ...

  4. Oracle11g静默安装

    静默安装Oracle11G 前期准备 1虚拟机准备: Centos 6.5 64位 内存2G 硬盘30G Cpu 4核 Hostname silent 将安装包放到/tmp/oracle目录下 2.软 ...

  5. 中文编程语言之Z语言初尝试: ZLOGO 4

    原文: https://zhuanlan.zhihu.com/p/31505895. 作者为本人. @TKT2016 开发的Z语言(ZLOGO是它的一个部分)是本人至今看到的唯一一个仍活跃开发的开源且 ...

  6. Android Weekly Notes Issue #286

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

  7. Tosska SQL Tuning Expert 工具优化SQL语句

    对于SQL开发人员和DBA来说,根据业务需求写出一条正确的SQL很容易.但是SQL的执行性能怎么样呢?能优化一下跑得更快吗?如果不是资深的DBA,估计很多人都没有信心. 幸运的是,自动化优化工具可以帮 ...

  8. CCF-201409-3-字符串匹配

    问题描述 试题编号: 201409-3 试题名称: 字符串匹配 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你 ...

  9. phython编写图形界面

    Python支持多种图形界面的第三方库,包括: Tk wxWidgets Qt GTK 等等. 但是Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用. ...

  10. CentOS7操作系统参数优化

    生产环境配置需要标准化,将常用操作写成脚本用于操作系统的初始化. #!/bin/bash #Date:2017 #This Script is for centos7.3 init #01.配置yum ...