• JavaWeb框架_Struts2_(八)----->Struts2的国际化


      

      这一篇博文拖了蛮久了,现在先把它完成,结束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框架的最大特点还是在拦截器这一块,把拦截器配置和原理弄明白是很重要的。

  • 相关阅读:
    VS编译 x64版本zlib库
    如何导出标准模板库(STL)类的实例化和包含STL类对象数据成员的类
    早前阅读live555源码做的笔记
    windows下 jemalloc编译
    简单的BSON OID生成实现
    Qt5.9静态库编译VS2015-x64
    [trouble shoot]atol和atoll
    LeetCode[Linked List]: Remove Duplicates from Sorted List II
    HighCharts实现多数据折线图分列显示
    用户空间驱动
  • 原文地址:https://www.cnblogs.com/Mairr/p/7998655.html
Copyright © 2020-2023  润新知