JSTL fmt_formatNumber 数字、货币格式化
### JSTL `fmt:formatNumber` 数字与货币格式化 #### 一、概述 在Java Server Pages (JSP) 开发过程中,对数字进行格式化是非常常见的需求之一。例如,将数值按照特定的货币格式展示,或者将数字转换为百分比形式等。Java Standard Tag Library (JSTL) 中的 `<fmt:formatNumber>` 标签提供了一种简单而强大的方式来完成这些任务。 #### 二、环境配置 在使用 `<fmt:formatNumber>` 之前,需要确保项目中已经包含了 JSTL 的相关库文件。通常情况下,JSTL 库文件会被放置在 Tomcat 的 `WEB-INF/lib` 目录下,例如 `jstl.jar` 和 `standard.jar` 等。在 JSP 页面中引入 JSTL 库的常用方式是在页面顶部添加如下代码: ```jsp <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> ``` 这里通过 `<%@ taglib %>` 指令导入了 JSTL 的核心库 (`core`) 和国际化/格式化库 (`fmt`)。 #### 三、`fmt:formatNumber` 基本用法 `<fmt:formatNumber>` 标签的主要作用是将一个数值(可以是 Java 表达式的结果)按照指定的方式格式化,并输出到 JSP 页面中。该标签支持多种类型的格式化,包括数字、货币和百分比等。其基本语法如下: ```jsp <fmt:formatNumber value="${number}" type="number|currency|percent" pattern="..." /> ``` 其中: - `value` 属性表示待格式化的数值。 - `type` 属性指定输出格式类型,可选值有 `number`、`currency` 和 `percent`。 - `pattern` 属性用于指定具体的格式化模式。 #### 四、格式化示例 1. **货币格式化**: - 不指定模式时,默认使用当前区域设置的标准货币格式。 ```jsp <fmt:formatNumber value="1234567890" type="currency" /> ``` 输出结果:1,234,567,890.00(具体格式取决于服务器的区域设置) 2. **指定格式模式**: - 使用 `.00` 模式输出带有两位小数的货币格式。 ```jsp <fmt:formatNumber value="12" type="currency" pattern=".00" /> ``` 输出结果:12.00 - 使用 `.0#` 模式输出最多一位小数的货币格式。 ```jsp <fmt:formatNumber value="12" type="currency" pattern=".0#" /> ``` 输出结果:12.0 3. **数字格式化**: - 使用 `#,#00.0#` 模式输出带千分位分隔符的数值,小数部分最多保留一位。 ```jsp <fmt:formatNumber value="123456.7891" pattern="#,#00.0#" /> ``` 输出结果:123,456.79 - 使用 `#,#00.00#` 模式输出带千分位分隔符的数值,小数部分保留两位。 ```jsp <fmt:formatNumber value="123456.7" pattern="#,#00.00#" /> ``` 输出结果:123,456.70 4. **百分比格式化**: - 将数字转换为百分比形式。 ```jsp <fmt:formatNumber value="12" type="percent" /> ``` 输出结果:1,200% #### 五、Java 中的格式化 除了 JSP 中的 `<fmt:formatNumber>` 标签外,在 Java 代码中也可以使用 `DecimalFormat` 类来实现类似的格式化效果。例如: ```java DecimalFormat df = new DecimalFormat("#,##0.0#"); String formatted = df.format(123456.7); ``` 这里的 `#,##0.0#` 模式表示使用逗号作为千分位分隔符,并且小数部分最多保留一位。 #### 六、格式化模式详解 - `0` 表示数字占位符,必须显示数字。 - `#` 表示可选的数字占位符,如果没有对应的数字则不显示。 - `.` 表示小数点符号。 - `,` 表示千分位分隔符。 - `-` 表示负号。 - `%` 表示百分比符号,自动乘以 100 并添加百分比符号。 #### 七、总结 `<fmt:formatNumber>` 是 JSTL 提供的一个非常实用的标签,能够帮助开发者快速地对数值进行各种格式化处理。掌握 `<fmt:formatNumber>` 的使用方法对于提高 JSP 页面的美观性和用户体验具有重要意义。同时,了解 `DecimalFormat` 类的使用也为开发者提供了更多的选择和灵活性。
你到你的 Tomcat 目录下搜索 jstl.jar 和 standard.jar 两个文件,这两个文件一个是
JSTL 的规范包,后一个是实现包或者说是 JSTL 的标准实现。把这两个文件复制到 WEB-INF/lib
目录下,JSTL 就算添加了。在 JSP 页面上加上:
XML code
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
**/
JSTL fmt:formatNumber 数字、货币格式化
----------------------------------------------------------------------------------
首先在jsp页面引用:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:formatNumber value="12" type="currency" pattern="$.00"/> -- $12.00
<fmt:formatNumber value="12" type="currency" pattern="$.0#"/> -- $12.0
<fmt:formatNumber value="1234567890" type="currency"/> -- $1,234,567,890.00(那个货币的符号和当前web服务器的 local 设定有关)
<fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/> -- 123,456.79
<fmt:formatNumber value="123456.7" pattern="#,#00.0#"/> -- 123,456.7
<fmt:formatNumber value="123456.7" pattern="#,#00.00#"/> -- 123,456.70
<fmt:formatNumber value="12" type="percent" /> -- 1,200% (type 可以是currency、 number、 和percent)。
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助