• JSTL-格式标签库


    主页:http://www.cnblogs.com/EasonJim/p/6958992.html的分支页。

    一、<fmt:formatNumber>

    <fmt:formatNumber>标签用于格式化数字,百分比和货币。

    属性:

    <fmt:formatNumber>标签具有如下所示属性:

    属性描述是否必需默认值
    value 显示的数值
    type 数值、货币或百分比 数值
    pattern 为输出指定一个自定义格式模式
    currencyCode Currency代码(for type="currency") 来自默认语言环境
    currencySymbol Currency符号(for type="currency") 来自默认语言环境
    groupingUsed 是否将数值分组(TRUE or FALSE) true
    maxIntegerDigits 输出的整数位数的最大值
    minIntegerDigits 输出的整数位数的最小值
    maxFractionDigits 输出的小数位数的最大值
    minFractionDigits 输出的小数位数的最小值
    var 存储格式化数字的变量名 页面输出
    scope 存储格式化数字的变量范围 页面
    • 如果type属性是百分比或数字,那么可以使用一些数字-格式化属性。maxIntegerDigits和minIntegerDigits属性允许指定数字的非小数部分的大小。如果实际数字超过了maxIntegerDigits,那么数字就会被截断。

    • 属性同样允许确定使用多少为小数。minFractionalDigits和maxFractionalDigits属性允许指定小数位数。如果数字超过了小数位数的最大值,那么数字就会被截断。

    • 分组可以用来在成千上万组之间插入逗号。通过将groupingIsUsed属性设置为真或假来指定分组。当分组与minIntegerDigits一起使用时,必须多加小心来得到预想的结果。

    • 可能会选择使用pattern属性。该属性可以包含特殊字符,指定有多喜欢编码的数字。下表展示了这些代码。
    SymbolDescription

    0

    代表了一个数字。

    E

    代表了指数形式。

    #

    代表一个数字;显示0为缺席。

    .

    作为十进制分隔符的一个占位符。

    ,

    作为分组分隔符的一个占位符。

    ;

    分隔形式

    -

    作为默认的负数前缀。

    %

    乘以100并作为百分比显示。

    ?

    乘以1000并作为千分比显示。

    ¤

    代表了货币符号; 被动态的货币符号取代。

    X

    表明任何其他可以用作前缀或后缀的字符。

    '

    用于在前缀或后缀中引用特殊字符。

    实例:

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    
    <html>
    <head>
      <title>JSTL fmt:formatNumber Tag</title>
    </head>
    <body>
    <h3>Number Format:</h3>
    <c:set var="balance" value="120000.2309" />
    <p>Formatted Number (1): <fmt:formatNumber value="${balance}" type="currency"/></p>
    <p>Formatted Number (2): <fmt:formatNumber type="number" maxIntegerDigits="3" value="${balance}" /></p>
    <p>Formatted Number (3): <fmt:formatNumber type="number" maxFractionDigits="3" value="${balance}" /></p>
    <p>Formatted Number (4): <fmt:formatNumber type="number" groupingUsed="false" value="${balance}" /></p>
    <p>Formatted Number (5): <fmt:formatNumber type="percent" maxIntegerDigits="3" value="${balance}" /></p>
    <p>Formatted Number (6): <fmt:formatNumber type="percent" minFractionDigits="10" value="${balance}" /></p>
    <p>Formatted Number (7): <fmt:formatNumber type="percent" maxIntegerDigits="3" value="${balance}" /></p>
    <p>Formatted Number (8): <fmt:formatNumber type="number" pattern="###.###E0" value="${balance}" /></p>
    <p>Currency in USA :
    <fmt:setLocale value="en_US"/>
    <fmt:formatNumber value="${balance}" type="currency"/></p>
    </body>
    </html>

    这将会产生如下所示结果:

    二、<fmt:parseNumber>

    <fmt:parseNumber>标签用于解析数字、百分比和货币。

    属性:

    <fmt:parseNumber>标签具有如下所示属性:

    属性描述是否必需默认值
    value 要读取(解析)的数值 Body
    type 数字、货币或百分比 数字
    parseLocale 解析数字时使用的语言环境 默认语言环境
    integerOnly 解析一个整数(true)还是解析一个浮点数(false) false
    pattern 自定义解析模式
    timeZone 显示日期的时区 默认的时区
    var 存储解析数字的变量名 页面输出
    scope 存储格式化数字的变量范围 页面

    提供的pattern属性的工作方式与<fmt:formatNumber>标签的pattern属性类似。然而,在解析的情况中,pattern属性告诉解析器想要什么格式。

    实例:

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    
    <html>
    <head>
      <title>JSTL fmt:parseNumber Tag</title>
    </head>
    <body>
    <h3>Number Parsing:</h3>
    <c:set var="balance" value="1250003.350" />
    
    <fmt:parseNumber var="i" type="number" value="${balance}" />
    <p>Parsed Number (1) : <c:out value="${i}" /></p>
    <fmt:parseNumber var="i" integerOnly="true" type="number" value="${balance}" />
    <p>Parsed Number (2) : <c:out value="${i}" /></p>
    
    </body>
    </html>

    这将会产生如下所示结果:

    三、<fmt:formatDate>

    <fmt:formatDate>标签用于以多种方式格式化日期。

    属性:

    <fmt:formatDate>标签具有如下所示属性:

    属性描述是否必需默认值
    value 显示的日期值
    type 日期、时间或两者 日期
    dateStyle FULL,LONG,MEDIUM,SHORT,或默认 默认
    timeStyle FULL,LONG,MEDIUM,SHORT,或默认 默认
    pattern 自定义格式化模式
    timeZone 显示的日期时区 默认的时区
    var 存储格式化日期的变量名 页面输出
    scope 存储格式化日期的变量范围 页面

    pattern属性指定了更精确地日期处理:

    代码目的示例

    G

    时代指示器

    AD

    y

    2002

    M

    April & 04

    d

    一个月中的某一天

    20

    h

    时间(12-hour time)

    12

    H

    时间(24-hour time)

    0

    m

    分钟

    45

    s

    52

    S

    毫秒

    970

    E

    一周中的某一天

    Tuesday

    D

    一年中的某一天

    180

    F

    一个月中的某一周的某一天

    2 (2nd Wed in month)

    w

    一年中的某一周

    27

    W

    一个月中的某一周

    2

    a

    a.m./p.m. 显示器

    PM

    k

    时间(12-hour time)

    24

    K

    时间(24-hour time)

    0

    z

    时区

    Central Standard Time

    '

     

    文本消逝

    ''

     

    单引号

    实例:

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    
    <html>
    <head>
      <title>JSTL fmt:dateNumber Tag</title>
    </head>
    <body>
    <h3>Number Format:</h3>
    <c:set var="now" value="<%=new java.util.Date()%>" />
    
    <p>Formatted Date (1): <fmt:formatDate type="time" value="${now}" /></p>
    <p>Formatted Date (2): <fmt:formatDate type="date" value="${now}" /></p>
    <p>Formatted Date (3): <fmt:formatDate type="both" value="${now}" /></p>
    <p>Formatted Date (4): <fmt:formatDate type="both" dateStyle="short" timeStyle="short" value="${now}" /></p>
    <p>Formatted Date (5): <fmt:formatDate type="both" dateStyle="medium" timeStyle="medium" value="${now}" /></p>
    <p>Formatted Date (6): <fmt:formatDate type="both" dateStyle="long" timeStyle="long" value="${now}" /></p>
    <p>Formatted Date (7): <fmt:formatDate pattern="yyyy-MM-dd" value="${now}" /></p>
    
    </body>
    </html>

    这将会产生如下所示的结果:

    四、<fmt:parseDate>

    <fmt:parseDate>标签用于解析日期。

    属性:

    <fmt:parseDate>标签具有如下所示属性:

    属性描述是否必需默认值
    value 要读取(解析)的日期值 Body
    type 日期、时间或两者 日期
    dateStyle FULL,LONG,MEDIUM,SHORT,或默认 默认
    timeStyle FULL,LONG,MEDIUM,SHORT,或默认 默认
    parseLocale 解析日期时使用的语言环境 默认语言环境
    pattern 自定义解析模式
    timeZone 解析的日期的时区 默认的时区
    var 存储解析日期的变量名 页面输出
    scope 存储格式化日期的变量范围 页面

    实例:

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    
    <html>
    <head>
      <title>JSTL fmt:parseDate Tag</title>
    </head>
    <body>
    <h3>Date Parsing:</h3>
    <c:set var="now" value="20-10-2010" />
    
    <fmt:parseDate value="${now}" var="parsedEmpDate" pattern="dd-MM-yyyy" />
    <p>Parsed Date: <c:out value="${parsedEmpDate}" /></p>
    
    </body>
    </html>

    这将产生如下所示的结果:

    五、<fmt:bundle>

    <fmt:bundle>标签使指定的包对所有的出现在<fmt:bundle></fmt:bundle>标签之间的<fmt:message>标签是可用的。这可以节省额外的步骤为每个<fmt:message>标签指定资源包。

    例如,下面的两个<fmt:bundle>块会产生相同的输出:

    <fmt:bundle basename="com.jsoft.Example">
        <fmt:message key="count.one"/>
    </fmt:bundle>
    <fmt:bundle basename="com.jsoft.Example" prefix="count.">
        <fmt:message key="title"/>
    </fmt:bundle>

    属性:

    <fmt:bundle>标签具有如下所示属性:

    属性描述是否必需默认值
    basename 指定了要被加载的资源包的基名。
    prefix 在<fmt:message>子标签中预先考虑的每个键值名

    实例:

    资源包包含特定于本地语言环境的对象。资源包包含键/值对。当程序需要一个特定于本地语言环境的资源时,要把所有的键与所有的语言环境保持一致,但可以有特定于语言环境的转换值。资源包中帮助提供特定于语言环境的内容。

    一个Java资源包文件包含一系列key-to-string映射。关注的方法包括创建扩展java.util.ListResourceBundle类的编译后的Java类。必须编译这些类文件并使其可用于Web应用程序的类路径中。

    定义一个默认的资源包,如下所示:

    package com.jsoft;
    import java.util.ListResourceBundle;
    public class Example extends ListResourceBundle {
      public Object[][] getContents() {
        return contents;
      }
      static final Object[][] contents = {
      {"count.one", "One"},
      {"count.two", "Two"},
      {"count.three", "Three"},
      };
    }

    编译上述类Example.class并确保它在Web应用程序中的类路径中时可用的。现在可以使用下面的JSTL标签来显示三个数字,如下所示:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <html>
    <head>
    <title>JSTL fmt:bundle Tag</title>
    </head>
    <body>
    
    <fmt:bundle basename="com.jsoft.Example" prefix="count.">
       <fmt:message key="one"/><br/>
       <fmt:message key="two"/><br/>
       <fmt:message key="three"/><br/>
    </fmt:bundle>
    
    </body>
    </html>

    这会产生如下所示的结果:

    在不带前缀的情况下尝试上述例子,如下所示:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <html>
    <head>
    <title>JSTL fmt:bundle Tag</title>
    </head>
    <body>
    
    <fmt:bundle basename="com.jsoft.Example">
       <fmt:message key="count.one"/><br/>
       <fmt:message key="count.two"/><br/>
       <fmt:message key="count.three"/><br/>
    </fmt:bundle>
    
    </body>
    </html>

    这会产生如下所示的结果:

    六、<fmt:setLocale>

    <fmt:setLocale>标签用于在语言环境配置变量中存储给定的语言环境。

    属性:

    <fmt:setLocale>标签具有如下所示属性:

    属性描述是否必需默认值
    value 指定了一个两部分代码,代表ISO-639语言代码和ISO-3166国家代码。 en_US
    variant 浏览器特定的变量
    scope 语言环境配置变量的范围 页面

    实例:

    资源包包含特定于本地语言环境的对象。资源包包含键/值对。当程序需要一个特定于本地语言环境的资源时,要把所有的键与所有的语言环境保持一致,但可以有特定于语言环境的转换值。资源包中帮助提供特定于语言环境的内容。

    一个Java资源包文件包含一系列key-to-string映射。关注的方法包括创建扩展java.util.ListResourceBundle类的编译后的Java类。必须编译这些类文件并使其可用于Web应用程序的类路径中。

    定义一个默认的资源包,如下所示:

    package com.jsoft;
    
    import java.util.ListResourceBundle;
    
    public class Example extends ListResourceBundle {
      public Object[][] getContents() {
        return contents;
      }
      static final Object[][] contents = {
      {"count.one", "One"},
      {"count.two", "Two"},
      {"count.three", "Three"},
      };
    }

    现在再定义一个资源包,使用西班牙语:

    package com.jsoft;
    
    import java.util.ListResourceBundle;
    
    public class Example_es_ES extends ListResourceBundle {
      public Object[][] getContents() {
        return contents;
      }
      static final Object[][] contents = {
      {"count.one", "Uno"},
      {"count.two", "Dos"},
      {"count.three", "Tres"},
      };
    }

    编译上述类Example.class和Example_es_ES.class,确保它们在Web应用程序中的类路径中是可用的。现在可以使用下面的JSTL标签来显示三个数字,如下所示:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <html>
    <head>
    <title>JSTL fmt:setLocale Tag</title>
    </head>
    <body>
    
    <fmt:bundle basename="com.jsoft.Example">
       <fmt:message key="count.one"/><br/>
       <fmt:message key="count.two"/><br/>
       <fmt:message key="count.three"/><br/>
    </fmt:bundle>
    
    <!-- Change the Locale -->
    <fmt:setLocale value="es_ES"/>
    <fmt:bundle basename="com.jsoft.Example">
       <fmt:message key="count.one"/><br/>
       <fmt:message key="count.two"/><br/>
       <fmt:message key="count.three"/><br/>
    </fmt:bundle>
    
    </body>
    </html>

    这将产生如下所示结果:

    七、<fmt:setBundle>

    <fmt:setBundle>标签用于加载资源包,并把它存储在已命名的给定范围的变量中或存储在包配置变量中。

    属性:

    <fmt:setBundle>标签具有如下所示属性:

    属性描述是否必需默认值
    basename 资源包家族的基本名称,作为一个给定范围的变量或配置变量来显示
    var 存储新包的变量名 取代默认值
    scope 存储新包的变量范围 页面

    实例:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <html>
    <head>
    <title>JSTL fmt:setBundle Tag</title>
    </head>
    <body>
    
    <fmt:setLocale value="en"/>
    <fmt:setBundle basename="com.jsoft.Example" var="lang"/>
    
    <fmt:message key="count.one" bundle="${lang}"/><br/>
    <fmt:message key="count.two" bundle="${lang}"/><br/>
    <fmt:message key="count.three" bundle="${lang}"/><br/>
    
    </body>
    </html>

    这将产生如下所示结果:

    八、<fmt:timeZone>

    <fmt:timeZone>标签用于指定所有标签主体内用到的时区。

    属性:

    <fmt:timeZone>标签具有如下所示属性:

    属性描述是否必需默认值
    value 应用于主体的时区

    实例:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <html>
      <head>
        <title>JSTL fmt:timeZone Tag</title>
      </head>
    
      <body>
        <c:set var="now" value="<%=new java.util.Date()%>" />
        <table border="1" width="100%">
          <tr>
            <td width="100%" colspan="2" bgcolor="#0000FF">
              <p align="center">
                <b>
                  <font color="#FFFFFF" size="4">Formatting:
                  <fmt:formatDate value="${now}" type="both" timeStyle="long" dateStyle="long" />
                  </font>
                </b>
              </p>
            </td>
          </tr>
    
          <c:forEach var="zone" items="<%=java.util.TimeZone.getAvailableIDs()%>">
            <tr>
              <td width="51%">
                <c:out value="${zone}" />
              </td>
              <td width="49%">
                <fmt:timeZone value="${zone}">
                  <fmt:formatDate value="${now}" timeZone="${zn}" type="both" />
                </fmt:timeZone>
              </td>
            </tr>
          </c:forEach>
        </table>
      </body>
    </html>

    这将产生如下所示结果:

    九、<fmt:setTimeZone>

    <fmt:setTimeZone>标签用于将时区对象复制到指定的范围变量中。

    属性:

    <fmt:setTimeZone>标签具有如下所示属性:

    属性描述是否必需默认值
    value 作为给定范围的变量或配置变量显示的时区
    var 存储新时区的变量名 取代默认值
    scope 存储新时区的变量范围 页面

    实例:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <html>
    <head>
    <title>JSTL fmt:setTimeZone Tag</title>
    </head>
    <body>
    <c:set var="now" value="<%=new java.util.Date()%>" />
    <p>Date in Current Zone: <fmt:formatDate value="${now}" type="both" timeStyle="long" dateStyle="long" /></p>
    <p>Change Time Zone to GMT-8</p>
    <fmt:setTimeZone value="GMT-8" />
    <p>Date in Changed Zone: <fmt:formatDate value="${now}" type="both" timeStyle="long" dateStyle="long" /></p>
    </body>
    </html>

    这将产生如下所示的结果:

    十、<fmt:message>

    <fmt:message>标签将键映射到本地化的消息中并执行参数替换。

    属性:

    <fmt:message>标签具有如下所示属性:

    属性描述是否必需默认值
    key 要检索的消息键 Body
    bundle 使用的资源包 默认包
    var 存储本地化消息的变量名 页面输出
    scope 存储本地化消息的变量范围 页面

    实例:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <html>
    <head>
    <title>JSTL fmt:message Tag</title>
    </head>
    <body>
    
    <fmt:setLocale value="en"/>
    <fmt:setBundle basename="com.jsoft.Example" var="lang"/>
    
    <fmt:message key="count.one" bundle="${lang}"/><br/>
    <fmt:message key="count.two" bundle="${lang}"/><br/>
    <fmt:message key="count.three" bundle="${lang}"/><br/>
    
    </body>
    </html>

    这将会生成如下所示结果:

    十一、<fmt:requestEncoding>

    <fmt:requestEncoding>标签用于指定编码类型,该编码类型用于将数据传回到Web应用程序的表单中。

    属性:

    <fmt:requestEncoding>标签具有如下所示属性:

    属性描述是否必需默认值
    key 当解码请求参数时,想要应用的字符编码的名称

    当想要为从表单发送的解码数据指定字符编码时,就会用到< fmt:requestEncoding >标签。该标签必须和与ISO-8859-1不同的字符编码一起使用。由于大多数浏览器在它们的请求中不包括内容类型的头信息,所以这个标签是必需的。

    <fmt:requestEncoding>标签的目的是指定请求的内容类型。必须指定内容类型,即使页面编码生成的响应式通过页面指令的内容类型属性指定的。这是因为响应的实际语言环境(以及字符编码)可能与页面指令中指定的值不同。

    如果页面包含一个I18N-capable格式化操作,通过调用ServletResponse.setLocale()设置了响应的语言环境(以及字符编码),任何在页面指令中指定的编码都将被覆盖。

    实例:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <html>
    <head>
    <title>JSTL fmt:message Tag</title>
    </head>
    <body>
    
    <fmt:requestEncoding value="UTF-8" />
    <fmt:setLocale value="es_ES"/>
    <fmt:setBundle basename="com.jsoft.Example" var="lang"/>
    
    <fmt:message key="count.one" bundle="${lang}"/><br/>
    <fmt:message key="count.two" bundle="${lang}"/><br/>
    <fmt:message key="count.three" bundle="${lang}"/><br/>
    
    </body>
    </html>

    这将产生如下所示的结果:

  • 相关阅读:
    (转载)显示调用构造函数和析构函数
    (转载)c库不正确问题
    (转载)LINUX UNBUNTU10.04 下 搭建OC编译环境
    (转载)Chrome 快捷键 整理版
    (转载)php循环检测目录是否存在并创建(循环创建目录)
    (转载)PHP 判断常量,变量和函数是否存在
    Dockerfile 指令
    JavaEE&Docker 容器示例
    docker 中运行 redis 服务
    docker 中运行 sshd 服务
  • 原文地址:https://www.cnblogs.com/EasonJim/p/6958983.html
Copyright © 2020-2023  润新知