JSP基础(二十二)——JSTL il8n标签

来源:互联网 发布:教育网络策划方案 编辑:程序博客网 时间:2024/06/05 06:25

    il8n标签用于进行国际化语言的转换作业,同时提供日期与数值等数据类型的格式转换标签。相关标签如下:


 ①国际化设置

▶setLocale :设置所使用的语言文化区域

▶requestEncoding:指定编码方式


 ②消息

▶bundle:指定所要使用的资源文件名称

▶setBundle:设置预设的资源文件

▶message:取得资源文件的内容


 ③数字、日期格式

▶timeZone:转换时区格式

▶setTimeZone:存储时区信息

▶formatNumber:格式化数值

▶parseNumber:解析特定数值格式

▶formatDate:格式化日期

▶parseDate:解析特定日期格式


    要使用 il8n标签库,必须先使用taglib指令引入它,其语法格式为:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>


一、国际化设置标签

1.1、<fmt:setLocale>标签

    该标签用来设置用户的语言地区。语法如下:

<fmt:setLocale value="{II|II-CC}" variant="variant" scope="{page|request|session|application}"/>
    value属性是必须的,代表所要指定的区域代号。value值可以由II两个小写字母表示,如zh,或者有II-CC组成的语言-国家代码表示,如zh-CN(中文-中国)。

    默认情况下,il8n标记依据浏览器的设定来确定本地属性值。使用<fmt:setLocale>标记会覆盖浏览器本地属性设置。



1.2、<fmt:requestEncoding>标签

    该标签用来设置字符串编码。网页只有经过正确的编码,进行请求响应的过程中,传递的参数内容才能正确显示。<fmt:requestEncoding>标签的具体作用和request内置对象的setCharacterEncoding()方法的功能完全相同。语法如下:

<fmt:requestEncoding value="charsetName"/>
    value属性代表所要指定的编码方式字符串,如果没有指定,则它会自动寻找合适的编码方式。默认的是ISO-8859-1的字符,需要显式指定字符集编码。


二、消息标签库

    作用:获取系统设定的语言资源,使Web应用支持国际化。

    国际化网页示意图:


    当浏览器提出网页浏览请求时,网页根据浏览器所属的区域语系,取得其相关的资源文件,正确的显示符合此语系的网页内容。


2.1、<fmt:bundle>标签

    该标签主要用来取得资源文件的内容,将其显示在网页上。语法:

<fmt:bundle basename="basename" prefix="prefix">...</fmt:bundle>
   注:basename属性设置要使用资源的名称,不包含文件本身的扩展名,当basename属性为null、空或者无法找到资源时,在网页上会产生???<key>???的错误信息

prefix指定<fmt:bundle>标签当中key值的预设前缀。


2.2、<fmt:setBundle>标签

    该标签设置默认的资源文件,指定资源不存在时,直接套用默认的资源文件。语法:

 <fmt:setBundle basename="basename" var="varName" scope="page/..."/>
    当basename属性为null、空或者无法找到资源时,在网页上会产生???<key>???的错误信息。

    var表示指定变量的名称,还可以存储所要读取资源的资源文件内容,scope表示var的范围。

    basename设定要使用的资源文件,若没有设定var时,那么设定好的资源文件会成为默认的资源文件。在同一页面或同一属性范围内<fmt:message>都可以直接使用此资源文件。相反,若设定var时,那么会将资源文件存储到varName中,当使用<fmt:message>时,必须使用bundle这个属性来指定。如:

<fmt:setBundle basename="MyResource" var="myResource" scope="session"/><fmt:message key="str" bundle="${myResource}">
如果没有指定var,只需写成:
<fmt:setBundle basename="MyResource" scope="session"/><>fmt:message key="str"/>



2.3、<fmt:message>标签

    该标签主要用于从指定的资源中把指定的关键字获取出来。语法(key属性必须有):

①无本体内容:

<fmt:message key="messagekey" bundle="resourceBundle" var="varName" scope="page/..." />

②包含指定信息参数的本体内容:

<fmt:message key="messagekey" bundle="resourceBundle" var="varName" scope="page/..." >    <fmt:param  /></fmt:message>

③包含指定选择性信息参数与key值的本体内容:

<fmt:message key="messagekey" bundle="resourceBundle" var="varName" scope="page/..." >    索引    可选的<fmt:param  /></fmt:message>

    key表示索引,bundle表示使用的数据来源,var用来存储国际化信息,scope表示var的范围。



三、数字日期格式化

3.1、设置是时区

<fmt:timeZone value="timeZone">...</fmt:timeZone>

    针对标签当中的本体内容进行格式化,value代表使用的时区。


<fmt:timeZone value="timeZone" var="varName" scope="page/..."/>
    将时区的设置信息存储在指定的变量里面。


3.2、格式化数字

<fmt:formatNumber>标签将指定的数值格式化,用来表现货币或是百分比等其他特定的数值状态。



3.3、格式化日期

<fmt:formatDate>标签以指定的时区格式化显示日期对象。