`
chaoyi
  • 浏览: 309636 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

国际化标签库

 
阅读更多

本章目标
理解国际化的主要操作;
可以使用国际化进行文本、日期的格式化操作。

 

国际化标签库
国际化是程序的重要组成部分,一个程序可以根据所在的区域进行相应信息显示,例如:各个地区的数字、日期显示风格都是不一样的,在JSTL中使用fmt.tld作为格式化标签库的定义文件。

 

格式化标签库提供的标签

 

<fmt:setLocale>标签
<fmt:setLocale>标签的主要功能是用来设定用户所在的区域,语法如下:
<fmt:setLocale value="区域编码" [variant="浏览器"] [scope="[page | request | session | application]"]/>

 

<fmt:setLocale>标签的属性

 

设置Locale显示

<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>设置 Locale 显示</title>
</head>
<body>
<%//设置一个 page 范围的属性
	pageContext.setAttribute("date", new Date());
 %>
 <h3>中文日期显示:
 	<fmt:setLocale value="zh_CN"/>
 	<fmt:formatDate value="${date}"/>
 </h3>
  <h3>英文日期显示:
 	<fmt:setLocale value="en_US"/>
 	<fmt:formatDate value="${date}"/>
 </h3>
</body>
</html>

效果图:

  

<fmt:requestEncoding>标签
<fmt:requestEncoding>标签的主要功能是用于设置所有的请求编码,功能与setCharacterEncoding()一样,语法如下:
<fmt:requestEncoding [value="字符集"]/>
范例:设置统一编码
<fmt:requestEncodingvalue="GBK"/>

 

读取资源文件
在国际化中最重要的组成部分就是资源文件的读取,在JSTL中提供了四个标签用于资源的读取和操作:<fmt:message>、<fmt:param>、<fmt:bundle>、<fmt:setBundle>。
所有的资源文件都是以*.properties为后缀的,所有的内容要按照“key=value”的格式进行编写,在WEB中,资源文件要保存在/WEB-INF/classes文件夹之中。
定义资源文件 —— /WEB-INF/classes/Message.properties
name = chaoyi
# info = 欢迎{0}光临!
info = \u6b22\u8fce{0}\u5149\u4e34\uff01

 

效果图:

 

<fmt:bundle>
<fmt:bundle>设置要读取的资源文件名称,语法如下:
<fmt:bundle basename="资源文件名称" [prefix="前置标记"]>
  标签体内容
</fmt:bundle>

 

<fmt:message>
当通过<fmt:bundle>标签指定好了资源文件名称后,就可以使用<fmt:message>标签按照key读取value,语法如下:
<fmt:message key="资源文件的指定key" [bundle="资源文件名称"]  [var="存储内容的属性名称"] [scope="[page | request | session | application]"]/>
<fmt:message key="资源文件的指定key" [bundle="资源文件名称"]  [var="存储内容的属性名称"] [scope="[page | request | session | application]"]>
  <fmt:param value="设置占位符内容"/>
  </fmt:message>

 

读取资源文件

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>读取资源文件</title>
</head>
<body>
<fmt:bundle basename="Message">
	<fmt:message key="name" var="nameref"></fmt:message>
</fmt:bundle>
<h3>姓名:${nameref}</h3>
<fmt:bundle basename="Message">
	<fmt:message key="info" var="inforef">
		<fmt:param value="yike"></fmt:param>
	</fmt:message>
</fmt:bundle>
<h3>信息:${inforef}</h3>
</body>
</html>

 效果图:

 
 <fmt:setBundle>
在进行资源文件读取的时候也可以通过<fmt:setBundle>标签设置一个默认的读取资源名称,这样每次在使用<fmt:message>进行信息读取的时候,直接通过bundle设置要读取的资源的属性即可,语法如下:
<fmt:setBundle basename="资源文件名称" [var="保存资源文件内容的属性名称"]  [scope="[page | request | session | application]"]/>

 

设置要读取的资源文件

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>设置要读取的资源文件</title>
</head>
<body>
<fmt:setBundle basename="Message" var="msg" />
<fmt:message key="name" var="nameref" bundle="${msg}"></fmt:message>
<h3>姓名:${nameref}</h3>
<fmt:message key="info" var="inforef" bundle="${msg}">
	<fmt:param value="yike"></fmt:param>
</fmt:message>
<h3>信息:${inforef}</h3>
</body>
</html>

 效果图:

 

数字格式化标签
在JSTL中进行数字格式化的操作可以使用<fmt:formatNumber>和<fmt:parseNumber>两个标签完成。<fmt:formatNumber>标签会根据所设置的区域将一个数字进行格式化,语法如下:
<fmt:formatNumber value="数字" [type="[number | currency | percent]"]  [pattern="格式化格式"] [currencyCode="货币的ISO代码"] [currencySymbol="货币符号"]  [groupingUsed="[true | false]"] [maxIntegerDigits="整数位的最大显示长度"]  [minIntegerDigits="整数位的最小显示长度"]   [maxFractionDigits="小数位的最大显示长度"]  [minFractionDigits="小数位的最小显示长度"] [var="格式化数字的保存属性"]  [scope="[page | request | session | application]"]/>
<fmt:formatNumber [type="[number | currency | percent]"]  [pattern="格式化格式"] [currencyCode="货币的ISO代码"] [currencySymbol="货币符号"]  [groupingUsed="[true | false]"] [maxIntegerDigits="整数位的最大显示长度"]  [minIntegerDigits="整数位的最小显示长度"]   [maxFractionDigits="小数位的最大显示长度"]  [minFractionDigits="小数位的最小显示长度"] [var="格式化数字的保存属性"]  [scope="[page | request | session | application]"]>  要格式化的数字</fmt:formatNumber>

 

<fmt:formatNumber>标签的属性

 

格式化数字显示

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>格式化数字显示</title>
</head>
<body>
<fmt:formatNumber value="15764865.4484576" maxIntegerDigits="7" maxFractionDigits="3" groupingUsed="true" var="num"></fmt:formatNumber>
<h3>格式化数字:${num}</h3>
<fmt:formatNumber value="15764865.4484576" pattern="##.###E0" var="num"></fmt:formatNumber>
<h3>格式化数字:${num}</h3>
</body>
</html>

 效果图:

 

<fmt:formatNumber>
<fmt:formatNumber>标签的作用是将一个数字进行格式化,而使用<fmt:parseNumber>可以将一个被格式化的数字进行还原,语法如下:
<fmt:parseNumber value="格式化好的数字" [type="[number | currency | percent]"]  [pattern="格式化样式"] [parseLocale="区域编码"] [integerOnly="[true | false]"]  [var="存储结果的属性名称"] [scope="[page | request | session | application]"]/>
<fmt:parseNumber value="格式化好的数字" [type="[number | currency | percent]"]  [pattern="格式化样式"] [parseLocale="区域编码"] [integerOnly="[true | false]"]  [var="存储结果的属性名称"] [scope="[page | request | session | application]"]>
  已格式化好的数字
  </fmt:parseNumber>

<fmt:parseNumber>标签的属性

 

数字的反格式化

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>数字的反格式化</title>
</head>
<body>
<fmt:parseNumber value="5,764,865.448" var="num"></fmt:parseNumber>
<h3>反格式化数字:${num}</h3>
<fmt:parseNumber value="15.765E6" pattern="##.###E0" var="num"></fmt:parseNumber>
<h3>反格式化数法:${num}</h3>
<fmt:parseNumber value="3.5%" pattern="00%" var="num"></fmt:parseNumber>
<h3>反百分比:${num}</h3>
</body>
</html>

 效果图:

 

 日期时间格式化标签
<fmt:formatDate>标签的主要功能是用于日期时间的格式化显示,语法如下:
<fmt:formatDate value="date" [type="[time | date | both]"] [pattern="格式化样式"]  [dateStyle="[default | short | medium | long | full]"]  [timeStyle="[default | short | medium | long | full]"]  [timeZone="时区"] [var="存储结果的属性名称"]  [scope="[page | request | session | application]"]/>

 

<fmt:formatDate>标签的属性

 
 

 格式化日期时间

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>格式化日期时间</title>
</head>
<body>
<%
	//在 page 属性范围中保存一个日期
	pageContext.setAttribute("dateref", new java.util.Date());
 %>
 <fmt:formatDate value="${dateref}" type="both" dateStyle="default" timeStyle="default" var="date"/>
 <h3>default 显示日期时间:${date}</h3>
  <fmt:formatDate value="${dateref}" type="both" dateStyle="short" timeStyle="short" var="date"/>
 <h3>short 显示日期时间:${date}</h3>
  <fmt:formatDate value="${dateref}" type="both" dateStyle="medium" timeStyle="medium" var="date"/>
 <h3>medium 显示日期时间:${date}</h3>
  <fmt:formatDate value="${dateref}" type="both" dateStyle="long" timeStyle="long" var="date"/>
 <h3>long 显示日期时间:${date}</h3>
  <fmt:formatDate value="${dateref}" type="both" dateStyle="full" timeStyle="full" var="date"/>
 <h3>full 显示日期时间:${date}</h3>
  <fmt:formatDate value="${dateref}" type="both" pattern="yyyy 年 MM 月 dd 日 mm分 ss秒 SSS 毫秒" var="date"/>
 <h3>自定义格式显示日期时间:${date}</h3>
</body>
</html>

 效果图:

 

<fmt:parseDate>
<fmt:formatDate>标签的功能是将一个日期型的对象变为了字符串,而<fmt:parseDate>是将一个字符串的数据变回日期型数据,语法如下:
<fmt:parseDate value="date" [type="[time | date | both]"] [pattern="格式化样式"]  [dateStyle="[default | short | medium | long | full]"]  [timeStyle="[default | short | medium | long | full]"]  [timeZone="时区"] [var="存储结果的属性名称"]  [scope="[page | request | session | application]"]/>

 

<fmt:parseDate>标签的属性

 
日期的反格式化

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>日期的反格式化</title>
</head>
<body>
 <fmt:parseDate value="2014年6月1日 星期日 下午04时41分04秒 CST" type="both" dateStyle="full" timeStyle="full" var="date"></fmt:parseDate>
 <h3>字符串变为日期:${date}</h3>
  <fmt:parseDate value="2014 年 06 月 01 日 41分 04秒 477 毫秒" pattern="yyyy 年 MM 月 dd 日 mm分 ss秒 SSS 毫秒"  var="date"></fmt:parseDate>
 <h3>字符串变为日期:${date}</h3>
</body>
</html>

 效果图:

  

 

 设置时区
<fmt:setTimeZone>标签可以设置显示的时区或者将设置的时区储存到一个属性范围中,语法如下:
<fmt:setTimeZone value="设置的时区" [var="存储时区的属性名称"]  [scope="[page | request | session | application]"]/>


设置CCT时区 —— timezone_set.jsp
设置成CCT(中国沿海时间)、HST(夏威夷标准时间)
  <fmt:setTimeZone value="CCT" var="tz"/>

 

<fmt:timeZone>
<fmt:timeZone>可以设置时区,语法如下:
<fmt:timeZone value="设置的时区">
  标签体内容
  </fmt:timeZone>

 

设置时区显示

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>设置时区显示</title>
</head>
<body>
<%
	//在 page 属性范围中保存一个日期
	pageContext.setAttribute("dateref", new java.util.Date());
 %>
 <fmt:timeZone value="HST">
 	<fmt:formatDate value="${dateref}" type="both" dateStyle="full" timeStyle="full" var="date"/>
 </fmt:timeZone>
 <h3>full 显示日期时间是:${date}</h3>
</body>
</html>

 效果图:


小结
通过国际化显示标签可以方便的完成资源文件的读取,以及对文字、日期、数字的格式化操作。

 

  • 大小: 57.1 KB
  • 大小: 16.8 KB
  • 大小: 16.9 KB
  • 大小: 16.8 KB
  • 大小: 15.6 KB
  • 大小: 17.1 KB
  • 大小: 20.8 KB
  • 大小: 46.2 KB
  • 大小: 22 KB
  • 大小: 37.8 KB
  • 大小: 63.5 KB
  • 大小: 37 KB
  • 大小: 34.1 KB
  • 大小: 19.7 KB
  • 大小: 19.4 KB
分享到:
评论

相关推荐

    JSP标准标签库

    使用JSTL标签库能够提高JSP页面的可读性和维护性,避免在JSP页面中嵌入大量的Java代码,同时也可以利用JSTL提供的国际化标签库(i18n)进行本地化开发。 在JSTL的早期版本中,由于标签库的资源定位是通过硬编码的...

    struts2标签库及国际化的使用例子

    Struts2 框架提供了强大的标签库和国际化功能,本实验旨在掌握 Struts 2 标签库和国际化功能的使用,并实现用户注册页面的国际化显示。 一、Struts2 标签库 Struts2 框架提供了一个强大的标签库,用于简化 JSP ...

    jstl标签库 手册

    - **国际化标签库(Internationalization Tags)**:用于处理多语言环境。 - **数据库标签库(Database Tags)**:简化与数据库交互的操作。 - **XML 标签库(XML Tags)**:处理XML文档和XPath表达式。 - **...

    JSTL标签库相关jar包

    3. **i18n**:国际化标签库,支持多语言环境。 4. **sql**:SQL标签库,可以执行数据库查询、更新和其他SQL操作。 5. **xml**:XML标签库,用于处理XML文档和XPath表达式。 6. **core**:核心标签库,包含了最基础的...

    标准标签库

    2. **国际化标签库**:处理多语言支持,URI为`http://java.sun.com/jstl/fmt`,推荐前缀为`fmt`。 3. **XML处理标签库**:处理XML文档,URI为`http://java.sun.com/jstl/xml`,推荐前缀为`x`。 4. **SQL标签库**:...

    jsp的标准标签库的jar包

    5. **国际化标签库(I18N Tags)**:支持多语言环境,如`&lt;fmt:message&gt;`用于获取资源包中的消息,`&lt;fmt:formatNumber&gt;`格式化数字等。 在实际应用中,要使用JSTL,首先需要将`jstl.jar`和`standard.jar`添加到项目...

    JSTL标准标签库

    JSTL标准标签库的各个标签详细说明,包含了核心标签库(c:),国际化标签库(fmt:)以及函数标签库(fn).注意:SQL标签库(sql:)以及XML标签库(xml:)不应使用,文档中也未提及

    fmt 国际化格式标签库实践

    除了基本的国际化标签外,`fmt` 标签库还提供了多种格式化标签,用于处理日期、时间、数字等数据类型。 ##### 3.1 `&lt;fmt:formatDate&gt;` 标签 `&lt;fmt:formatDate&gt;` 标签用于格式化日期和时间。它可以根据设定的区域...

    JSP标准标签库-初学用

    例如,国际化标签库(fmt)用于处理日期、时间、数字的格式化和本地化,SQL标签库则提供了执行SQL查询和操作结果集的能力。 总的来说,JSTL是JSP开发中不可或缺的一部分,通过使用标准标签,开发者可以减少对Java...

    标准标签库(JSTL)实用.pdf

    它由五个主要的标签库组成,分别是核心标签库、XML标签库、格式化/国际化标签库、数据库标签库以及函数标签库。 1. **核心标签库(Core Tags)**:这是JSTL最基础的部分,提供了用于控制流程、迭代和条件判断的标签...

    jsp标准标签库stl

    2. **国际化标签库**:通过fmt:message和fmt:setBundle标签来实现页面的多语言支持,允许开发者轻松创建全球化应用。 3. **HTML标签库**:提供了一组与HTML元素对应的标签,如html:form、html:link等,使HTML代码...

    Struts2 使用 Struts2 实现国际化

    总结,实现Struts2的国际化涉及资源文件的创建、配置Struts2的`struts.xml`、设置locale以及在JSP页面中使用国际化标签库。理解和掌握这些步骤对于开发全球化应用程序至关重要。通过阅读源码和利用相关工具,开发者...

    标准标签库_0519.doc

    2. **国际化标签库(Format)**:支持日期、时间、数字的格式化和国际化。 3. **XML处理标签库(XML)**:用于XML文档的解析和操作。 4. **SQL标签库**:用于数据库操作,执行查询、更新等SQL语句。 每个标签库都有对应...

    JavaServer Pages标准标签库

    3. **国际化标签库(I18n Tags)**:支持多语言环境,提供了设置区域、格式化日期和数字以及处理消息资源的功能,如`&lt;fmt:setLocale&gt;`、`&lt;fmt:message&gt;`和`&lt;fmt:formatDate&gt;`。 4. **格式化标签库(Formatting Tags...

    JSTL标签库

    - **国际化标签库**(Internationalization Tag Library):用于处理国际化和格式化问题。 - **SQL标签库**:提供了执行SQL语句的能力。 - **XML标签库**:用于处理XML文档。 - **函数标签库**(Function Tag ...

    Jsp标签库帮助文档

    - **国际化标签库**(I18N Tags):处理多语言环境,如日期和货币格式化。URI为`http://java.sun.com/jstl/fmt`,建议前缀为`fmt`。 - **XML标签库**(XML Tags):处理XML文档的解析和操作。URI为`...

    国际化与struts2

    4. **在JSP页面中显示**:在视图层,我们可以使用Struts2的国际化标签库,如`&lt;s:text&gt;`,将键传递给标签,Struts2会自动查找对应的值并显示。 5. **处理用户选择的语言**:用户可以通过URL参数或cookie选择他们的...

    jstl标签库

    国际化标签库(fmt)用于处理国际化文本,包括日期、时间、数字的格式化与解析,以及消息资源的加载。 #### 3. JSTL函数(EL函数) JSTL函数库(fn)提供了一系列EL函数,用于字符串操作、数组和集合处理等功能,...

Global site tag (gtag.js) - Google Analytics