`
chaoyi
  • 浏览: 290469 次
  • 性别: 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
分享到:
评论

相关推荐

    JSTL标准标签库

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

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

    struts2标签库和国际化的使用,你会了吗?如果还不懂请看这里。

    fmt 国际化格式标签库实践

    一个描述了JSP和SERVLET中fmt国际化、格式标签库的实践性文档,可以学习下FMT的使用

    struts2 标签库使用文档

    Struts2标签库的组成 ...数据访问标签:主要包含用于输出值栈(ValueStack)中的值,完成国际化等功能的标签。 流程控制标签:主要包含用于实现分支,循环等流程控制的标签。 AJAX标签:用于支持Ajax效果

    JSP标准标签库(jstl)

    JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、...它还支持使用本地化资源束进行 JSP 页面的国际化。xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据,而 sql 库定义了用来查询关系数据库的操作。

    自定义JSP标签实现语言国际化(类似struts text标签),并同时支持图片、JS文件国际化

    通过定制jsp标签库,实现如下功能: 1.支持语言国际化(类似struts text标签) 2.支持图片文件、JS文件国际化

    struts2标签库

    struts2 标签 国际化 文件上传 校验 拦截器 struts2.0的标签库(简介) 用过struts1.x的人都知道,标签库有html、bean、logic、tiles, 而struts2.0里的标签却没有分类,只用在jsp头文件加上 就能使用struts2.0...

    java jsp 自定义标签开发

    java jsp 自定义标签开发 在JSTL提供了四个标签库(核心标签库、国际化标签库、数据库标签库和XML标签库)

    国际化和拦截器还有标签库

    大家下载下来之后 ,照着里面的代码写下去就行了。里面的内容包括了以下: Struts2的拦截器 Struts2整合JSF ...Struts2的国际化(Internationalization) Struts2标签库 Struts2整合Hibernate及Spring

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1、&lt;sql:setDataSource&gt; ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1、 13.5.2、数据库操作标签 13.5.3、...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1、 13.5.2、数据库操作标签 13.5.3、...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1、&lt;sql:setDataSource&gt; ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1、 13.5.2、数据库操作标签 13.5.3、...

    java web 视频、电子书、源码(李兴华老师出版)

    13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1、&lt;sql:setDataSource&gt; ...

    JSP标准标签库实例

    JSTL全名JspServer Pages Standdard Tag Library(Jsp标准标签库),它是sun公司发布的一个针对JSP开发的新组件,它允许... 如:基本输入输出、流程控制、循环、XML文件剖析、数据库查询及国际化和文字格式标准化的应用等。

    李兴华Java Web开发实战经典(高清版) Part2

    13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1、&lt;sql:setDataSource&gt; ...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1、 13.5.2、数据库操作标签 13.5.3、...

Global site tag (gtag.js) - Google Analytics