08---JSTL03(国际化)

1、<fmt:setLocale>标签:
 Locale是进行国际化操作中最重要的一个内容,通过不同个locale可以指定不同的区域,
 以取得不同的资源文件的信息;
  <%@ page contentType="text/html" pageEncoding="gbk"%>
  <%@ page import="java.util.*"%>
  <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
  <html>
  <head><title>这是测试</title></head>
  <body>
   <%
    pageContext.setAttribute("date",new Date());
   %> 
   <h3>中文日期显示:</h3>
    <fmt:setLocale value="zh_CN"/>
    <fmt:formatDate value="${date}"/>
   </h3>
   <h3>英文日期显示:</h3>
    <fmt:setLocale value="en_US"/>
    <fmt:formatDate value="${date}"/>
   </h3>
  </body>
  </html>

2、<fmt:requestEncoding>标签的主要作用是用于设置所有的请求编码,功能与setCharacterEncoding(

)yiyang ,
 语法如下:
  ·<fmt:requestEncoding [value="字符集"]/>
  <fmt:requestEncoding value="gbk"/>

3、<fmt:bundle>,读取资源文件:
 在进行国际化程序实现中最重要的部分就是资源文件的读取,所有的资源文件的后缀
 肯定是*.properties文件,下面先定义一个普通的资源文件:Message.properties;
 文件应该保持在classpath之中,所以直接在/WEB-INF/classes中建立即可;

 首先在C:\Program Files\Java\jdk1.6.0_18\bin中找到native2ascii.exe
  在里面输入---进行转码;
   欢迎{0}光临!----回车得到如下:
   \u6b22\u8fce{0}\u7684\u5149\u4e34\uff01
  在Message.properties中:
   name=lid
   info=\u6b22\u8fce{0}\u7684\u5149\u4e34\uff01
 下面就需要通过标签设置此资源文件;
 
 通过<fmt:bundle>标签指定好了资源文件名称之后,就可以使用<fmt:message>标签按照key读取

value,
 语法如下:
 <fmt:message key="资源文件的指定key" [bundle="资源文件名称"] [var="存储内容属性名

称"]
      [page|resquest|session|application]>

  <%@ page contentType="text/html" pageEncoding="gbk"%>
  <%@ page import="java.util.*"%>
  <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
  <html>
  <head><title>这是测试</title></head>
  <body>
   <fmt:bundle basename="Message">
    <fmt:message key="name" var="nameref"/>
   </fmt:bundle>
   <h3>姓名:${nameref}</h3>
   <fmt:bundle basename="Message">
    <fmt:message key="info" var="inforef">
     <fmt:param value="lid"/>
    </fmt:message>
   </fmt:bundle>
   <h3>信息:${inforef}</h3>
  </body>
  </html>
4、<fmt:setBundle>:设置一个默认的读取资源名称;
 <%@ page contentType="text/html" pageEncoding="gbk"%>
 <%@ page import="java.util.*"%>
 <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
 <html>
 <head><title>这是测试</title></head>
 <body>
  <fmt:setBundle basename="Message" var="msg"/>
  <fmt:message key="name" var="nameref" bundle="${msg}"/>
  <h3>姓名:${nameref}</h3>
  <fmt:message key="info" var="inforef" bundle="${msg}">
   <fmt:param value="lid"/>
  </fmt:message>
  <h3>信息:${inforef}</h3>
 </body>
 </html>

 此时,实际上也可以根据不同的资源文件进行划分,如果现在要实现国际化的操作,
 肯定要有很多资源文件,
 <fmt:setLocale value="zh_CN"/>
 <fmt:setBundle basename="Message" var="msg"/>

5、数组格式化:
 <%@ page contentType="text/html" pageEncoding="gbk"%>
 <%@ page import="java.util.*"%>
 <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
 <html>
 <head><title>这是测试</title></head>
 <body>
  <fmt:formatNumber value="33333.33444422" maxIntegerDigits="7"
   maxFractionDigits="3" groupingUsed="true" var="num"/> 
  <h3>格式化数字:${num}</h3>
 </body>
 </html>

 <%@ page contentType="text/html" pageEncoding="gbk"%>
 <%@ page import="java.util.*"%>
 <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
 <html>
 <head><title>这是测试</title></head>
 <body>
  <fmt:formatNumber value="33333.33444422" maxIntegerDigits="7"
   maxFractionDigits="3" groupingUsed="true" var="num"/> 
  <h3>格式化数字:${num}</h3>
  <fmt:formatNumber value="33333.33444422" pattern="##.###E0" var="num1"/>
  <h3>科学计数法:${num}</h3>
 </body>
 </html>
 反格式化:
  <%@ page contentType="text/html" pageEncoding="gbk"%>
  <%@ page import="java.util.*"%>
  <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
  <html>
  <head><title>这是测试</title></head>
  <body>
   <fmt:formatNumber value="33333.33444422" maxIntegerDigits="7"
    maxFractionDigits="3" groupingUsed="true" var="num"/> 
   <h3>格式化数字:${num}</h3>
   <fmt:formatNumber value="33333.33444422" pattern="##.###E0"

var="num1"/>
   <h3>科学计数法:${num}</h3>
   <fmt:parseNumber value="33,333.33444422" var="num2"/>
   <h3>反格式化计数法:${num2}</h3>
   <fmt:parseNumber value="3.98E6" pattern="##.###E0" var="num3"/>
   <h3>反科学计数法:${num3}</h3>
  </body>
  </html>

6、日期格式化:
 <%@ page contentType="text/html" pageEncoding="gbk"%>
 <%@ page import="java.util.*"%>
 <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
 <html>
 <head><title>这是测试</title></head>
 <body>
  <%
   pageContext.setAttribute("dateref" ,new 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="full"
    timeStyle="full" var="date"/>
  <h3>full显示日期时间:${date}</h3>
  <fmt:formatDate value="${dateref}" type="both" dateStyle="long"
    timeStyle="long" var="date"/>
  <h3>short显示日期时间:${date}</h3>
  <fmt:formatDate value="${dateref}" type="both" pattern="yyyy年MM月dd日 HH时

mm分ss秒SSS毫秒"
     var="date"/>
  <h3>自定义格式显示日期时间:${date}</h3>
 </body>
 </html>

7、日期的反格式化:
 <%@ page contentType="text/html" pageEncoding="gbk"%>
 <%@ page import="java.util.*"%>
 <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
 <html>
 <head><title>这是测试</title></head>
 <body>
  <%
   pageContext.setAttribute("dateref" ,new 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="full"
    timeStyle="full" var="date"/>
  <h3>full显示日期时间:${date}</h3>
  <fmt:formatDate value="${dateref}" type="both" dateStyle="long"
    timeStyle="long" var="date"/>
  <h3>short显示日期时间:${date}</h3>
  <fmt:formatDate value="${dateref}" type="both" pattern="yyyy年MM月dd日 HH时

mm分ss秒SSS毫秒"
     var="date"/>
  <h3>自定义格式显示日期时间:${date}</h3>
   
  <fmt:parseDate value="2008年7月5日 星期日 上午11时47分45秒 CST"
   type="both" dateStyle="full" timeStyle="full" var="date"/>
   <h3>字符串变为日期:${date}</h3>
  <fmt:parseDate value="2008年7月5日 星期日 上午11时47分45秒062毫秒"
   type="both" pattern="yyyy年MM月dd日 HH时mm分ss秒SSS毫秒"

var="date"/>
   <h3>字符串变为日期:${date}</h3>
 </body>
 </html>

8、设置时区:<fmt:setTimeZone>
 <%@ page contentType="text/html" pageEncoding="gbk"%>
 <%@ page import="java.util.*"%>
 <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
 <html>
 <head><title>这是测试</title></head>
 <body>
  <%
   pageContext.setAttribute("dateref" ,new 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>
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bzuld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值