• (2)JSTL的fmt国际化标签库


    format标签库:做国际化格式化,分两类 :                                                                                                 

    1. 国际化核心标签:<fmt:setLocale>、<fmt:bundle>、<fmt:setBundle>、<fmt:message>、<fmt:param>、<fmt:requestEncoding>
    2. 格式化标签:<fmt:timeZone>、<fmt:setTimeZone>、<fmt:formatNumber>、<fmt:parseNumber>、<fmt:formatDate>、<fmt:parseDate> 
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

     1.<fmt:setLocale>标签:用于设置本地化环境
      属性描述 

      value:Locale 环境的指定,可以是 java.util.Locale 或 String 类型的实例 
      scope:Locale 环境变量的作用范围(可选) 

      variant:客户浏览器或者操作者,例如:WIN为 windows ,MAC 为 macintosh

        设置本地环境为繁体中文    <fmt:setLocale value="zh_TW"/>
        设置本地环境为简体中文    <fmt:setLocale value="zh_CN"/>

    2.<fmt:requestEncoding>标签:用于为请求设置字符编码
      它只有一个属性 value ,在该属性中可以定义字符编码。 
       

     <fmt:requestEncoding value="GB2312"/>

     3.<fmt:bundle> 、 <fmt:setBundle> 标签:用于资源配置文件的数据来源
    3.1<fmt:bundle> 标签将资源配置文件绑定于它标签体中的显示

      属性描述
      basename:资源配置文件的指定,只需要指定文件名而无须扩展名
      prefix:前置关键字
     

    资源文件中配置的数据为:
    label.backcolor=#FFF
    label.fontcolor=#000
    则,可以用如下方法取得label的backcolor和fontcolor值:
        <fmt:bundle basename="MyResourse" prefix="label."> 
            <fmt:message key="backcolor" />
            <fmt:message key="fontcolor" />
        </fmt:bundle>

     3.2<fmt:setBundle> 标签则允许将资源配置文件保存为一个变量,在之后的工作可以根据该变量来进行
      属性描述 ,二组标签共有的属性 
      var:<fmt:setBundle> 独有的属性,用于保存资源配置文件为一个变量 
      scope:变量的作用范围 
        

    查找一个名为 applicationMessage_zh_CN.properties 的资源配置文件,来作为显示的 Resource 绑定
        <fmt:setBundle basename="applicationMessage" var="applicationBundle"/> 

     4.<fmt:message> 标签:用于显示资源配置文件信息

    该资源文件必须遵循如下格式:1.扩展名必须为properties,2.文件的内容必须依照key = value的格式;3.文件要放到WEB-INF/classes目录下
      属性描述 
      key:资源配置文件的“键”指定 
      bundle:若使用 <fmt:setBundle> 保存了资源配置文件,该属性就可以从保存的资源配置文件中进行查找 
      var:将显示信息保存为一个变量 
      scope:变量的作用范围 

    1)用<fmt:setBundle>标签将"applicationMessage"资源配置文件被赋于了变量"applicationBundle"
        用<fmt:message>标签显示由<fmt:setBundle>标签保存的资源配置文件中"键"为"passWord"的信息
        
            <fmt:setBundle basename="applicationMessage" var="applicationBundle"/> 
            <fmt:message key="passWord" bundle="${applicationBundle}" />
    
    2)用<fmt:bundle>标签定义的"applicationAllMessage"资源配置文件作用于其标签体内的显示
        用<fmt:message>标签显示"applicationAllMessage"资源配置文件中"键"为"userName"的信息
    
            <fmt:bundle basename="applicationAllMessage"> 
                <fmt:message key="userName" />
            </fmt:bundle>

     5.<fmt:param 标签:用于参数传递
      <fmt:param>标签应该位于 <fmt:message> 标签内,将为该消息标签提供参数值。它只有一个属性value 

    如:在MyResourse.properties文件中,有一个索引值如下(其中,{0}代表占位符):
    Str2=Hi,{0} 
    则,使用<fmt:param>标签传入值如下:
        <fmt:bundle basename="MyResourse"> 
            <fmt:message key="Str2">
                <fmt:param value="张三" />
            </fmt:message>
        </fmt:bundle>
    也可以在资源文件中指定参数的类型:
    如:在MyResourse.properties文件中,有一个索引值如下:
    Str3={0,date}
    则,使用<fmt:param>标签传入值如下:
        <% request.setAttribute("now",new Date()); %>
        <fmt:bundle basename="MyResourse"> 
            <fmt:message key="Str3">
                <fmt:param value="${now}" />
            </fmt:message>
        </fmt:bundle>

     6.<fmt:timeZone>、<fmt:setTimeZone>标签:用于设定时区
      <fmt:timeZone> 标签将使得在其标签体内的工作可以使用该时区设置
      <fmt:setTimeZone> 标签则允许将时区设置保存为一个变量,在之后的工作可以根据该变量来进行
      属性描述 
      value:时区的设置 GMT-8 Asia/Shanghai
      var:<fmt:setTimeZone> 独有的属性,用于保存时区为一个变量 
      scope:变量的作用范围 

    7.<fmt:formatNumber>标签:用于格式化数字
      属性描述 
      value:格式化的数字,该数值可以是 String 类型或 java.lang.Number 类型的实例 
      type:格式化的类型,可能值包括:currency(货币)、number(数字)和percent(百分比)
      pattern:格式化模式 
      var:结果保存变量 
      scope:变量的作用范围 
      maxIntegerDigits:指定格式化结果的最大值 
      minIntegerDigits:指定格式化结果的最小值 
      maxFractionDigits:指定格式化结果的最大值,带小数 
      minFractionDigits:指定格式化结果的最小值,带小数 
     

    结果将被保存在“ money ”变量中,将根据 Locale 环境显示当地的货币格式
    <fmt:formatNumber value="1000.888" type="currency" var="money"/> 
    
    保留两位小数 
    
    <fmt:formatNumber value="123.123456789" pattern="0.00"/> 
    
    格式数字(45,678.234) 
    
    <fmt:formatNumber type="number" value="45678.2345" /> 
    
    格式百分比(23%)
    <fmt:formatNumber type="percent" value="0.2345" />

     8.<fmt:parseNumber> 标签:用于解析数字,相当于java.text.NumberFormat的parse方法
      属性描述 
      value:将被解析的字符串 
      type:解析格式化的类型 
      pattern:解析格式化模式 
      var:结果保存变量,类型为 java.lang.Number 
      scope:变量的作用范围 
      parseLocale:以本地化的形式来解析字符串,该属性的内容应为 String 或 java.util.Locale 类型的实例 
       

     将"15%"转换为数字
        <fmt:parseNumber value="15%" type="percent" var="num"/> 
        <fmt:parseNumber value="1,000" >  //结果是1000
    
      <fmt:parseNumber value="1,000" parseLocale="de"/>  //德国的环境解析输出为:1

     9.<fmt:formatDate>标签:用于格式化日期,相当于DateFormat.format()方法
      属性描述
      value:格式化的日期,该属性的内容应该是 java.util.Date 类型的实例
      type:格式化的类型
      pattern:格式化模式
      var:结果保存变量
      scope:变量的作用范围
      timeZone:指定格式化日期的时区
     

    日期格式(2008年5月5日22点00分23秒)
    
    <fmt:formatDate value="<%=new Date() %>" pattern="yyyy年MM月dd日HH点mm分ss秒" />

     10.<fmt:parseDate>标签:用于解析日期
    属性描述 
    value:将被解析的字符串 
    type:解析格式化的类型 
    pattern:解析格式化模式 
    var:结果保存变量,类型为 java.lang.Date 
    scope:变量的作用范围 
    parseLocale:以本地化的形式来解析字符串,该属性的内容为 String 或 java.util.Locale 类型的实例 
    timeZone:指定解析格式化日期的时区
     

    <fmt:formatDate value="${date}" type="both" timeStyle="long" dateStyle="long" />
    type="both" 输入日期也同时输出具体时间
    timeStyle="long" 时间以“长”格式输出 差别:下午02时06分59秒 与 14:06:59 
    dateStyle="long" 日期以“长”格式输出 差别:2006年9月7日 与 2006-9-7
  • 相关阅读:
    网上找的面试题-之一
    python里的Join函数
    【转载51CTO】Linux中引号那些事儿
    【面试编程题】巧妙排序:排序只有1,2,3三个元素的数组,不能统计1,2,3的个数。
    [转载]mininet的安装和使用
    Open vSwitch源码阅读【转】及自己的理解【稍后更新】
    7、8月份安排 进度条
    请不要忽视基础小细节
    【编程之美】2.20 程序理解问题
    GDOI2017爆炸记
  • 原文地址:https://www.cnblogs.com/estellez/p/3956360.html
Copyright © 2020-2023  润新知