jsp中freemarker 數(shù)字格式化_JSP教程
推薦:解決jsp重復(fù)提交有幾種方法: 1 在你的表單頁(yè)里HEAD區(qū)加入這段代碼: META HTTP-EQUIV=pragma CONTENT=no-cache META HTTP-EQUIV=Cache-Control CONTENT=no-cache, must-revalidate META HTTP-EQUIV=expires CONTENT=Wed, 26 Feb 1997 08:21:57 GMT 2 生成一個(gè)令牌保存在用戶session中
一、使用內(nèi)建函數(shù) c
特點(diǎn):
不管其表現(xiàn)形式是怎樣的(
例如"123,456.123,456"、 "123 456.123 456"、 "000 123 456.123 456 000"、 "123,456.123 456"、 "1,2345,6.123456")
, 只要小數(shù)分割符是'.' 它就能轉(zhuǎn)化成計(jì)算機(jī)能夠識(shí)別的字符串形式,而且都是123456.123456,計(jì)算機(jī)處理的時(shí)候是沒有那些所謂的千位分隔符的(空格或逗號(hào)),而且計(jì)算機(jī)支持的最大的小數(shù)點(diǎn)后面的位數(shù)是16位,目前來說,已經(jīng)夠我們用了。
用法:
假設(shè)strmun是一個(gè)字符串形式的數(shù)字,則可以這樣寫 ${strnum?c},例如${"123,456.123,456"?c} 值為123456.123456
可能用處:
對(duì)一些表單允許用戶按照個(gè)人習(xí)慣輸入數(shù)字,提交的時(shí)候統(tǒng)一轉(zhuǎn)換
二、使用預(yù)定義的數(shù)字格式
有四種預(yù)定義的數(shù)字格式,分別是computer(跟內(nèi)建函數(shù)c功能一樣,用法不一樣)、currency(貨幣格式)、number(數(shù)字格式)、percent(百分比形式)
特點(diǎn):
這些格式的明確含義是本地化(國(guó)家)指定的,受 Java 平臺(tái)安裝環(huán)境所控制,而不是 FreeMarker,所以不建議用這些函數(shù),而且受默認(rèn)數(shù)字格式的影響,用法不靈活。
三、使用類似于Java中數(shù)字格式語(yǔ)法形式
特點(diǎn):
例如"0.#",左邊的'0'的個(gè)數(shù)代表整數(shù)部分最少為多少位,右邊'#"的個(gè)數(shù)代表小數(shù)部分最多為多少位;例如",##0.0#"表示整數(shù)部分的千位分割符是',',小數(shù)部分最多保留兩位,最少保留一位;例如"0.##%"以百分比的形式表示,小數(shù)部分最多兩位。
用法:
假設(shè)strnum是一個(gè)數(shù)字,則可以這樣寫${strnum?string(",##0.0#")} ,例如${123456.123456?string(",##0.0#")} 值為123,456.12
注意:
數(shù)字格式是本地化敏感的,不過我們一般都會(huì)給freemarker設(shè)置默認(rèn)的本地化語(yǔ)言,問題不大。
可能用處:
當(dāng)在某一個(gè)地方突然要用到數(shù)字格式時(shí),調(diào)用 string 函數(shù)是可以的,當(dāng)在很多地方都需要用到數(shù)字格式是,這樣處理太麻煩了,可以考慮設(shè)置默認(rèn)的數(shù)字格式化形式
四、局部設(shè)置
特點(diǎn):
如果在某個(gè)頁(yè)面,或者某幾個(gè)頁(yè)面(其它頁(yè)面可import進(jìn)來),用到的數(shù)字格式化是相同的,可考慮統(tǒng)一配置數(shù)字的格式化形式
用法:
只需在用到需要格式化的數(shù)字之前 設(shè)置就可以了,格式如下: <#setting number_format=",##0.##"> 其中",##0.##"的內(nèi)容是采用類似于java中數(shù)字格式的語(yǔ)法形式,也就是以上的第三點(diǎn)。
注意:
如果用在一個(gè)頁(yè)面,則整個(gè)頁(yè)面默認(rèn)就是那種格式,除非用string函數(shù)覆蓋了默認(rèn)的格式,同樣的,如果放在一個(gè)公共的頁(yè)面,其它頁(yè)面只要include它,也會(huì)是同樣的格式。
五、全局設(shè)置
特點(diǎn):
在所有的頁(yè)面都默認(rèn)提供數(shù)字的格式化形式
用法
(針對(duì)spring):在freemarker的配置文件中設(shè)置其默認(rèn)的數(shù)字格式化形式,如下:
代碼如下
< property name = "freemarkerSettings" >
< props>
.....
< prop key = "number_format"> 0.##
......
六、舍入處理
有幾種舍入處理方式,分別是 round,floor,ceiling 和string("0")
特點(diǎn):
前面三種,從字面上很好理解,我們也經(jīng)常使用,要說的最后一種,先看一個(gè)例子1.5?string("0")和2.5?string("0") 的值都是2 說明如下:
在金融和統(tǒng)計(jì)學(xué)中,四舍五入都是根據(jù)所謂的一半原則,這就意味著對(duì)最近的“鄰居”進(jìn)行四舍五入,除非離兩個(gè)鄰居距離相等,這種情況下,它四舍五入到偶數(shù)的鄰居。如果你注意看 1.5 和 2.5 的四舍五入的話,這在上面的示例中是可以看到的,兩個(gè)都被四舍五入到2,因?yàn)?2 是偶數(shù),但 1 和 3 是奇數(shù)。
用法:假設(shè)strnum是一個(gè)數(shù)字,則可以這樣寫${strnum?round(floor/ceiling)} 或者${strmun?string("0")}
可能用法:
可用在一些對(duì)數(shù)字精確度不高的情況(分頁(yè)處理時(shí)也許有用),一些對(duì)小數(shù)敏感的,還是用 string函數(shù)
例如:
${num?string('0.00')}
如果小數(shù)點(diǎn)后不足兩位,用 0 代替
${num?string('#.##')}
如果小數(shù)點(diǎn)后多余兩位,就只保留兩位,否則輸出實(shí)際值
輸出為:1239765.46
${num?string(',###.00')}
輸出為:1,239,765.46
整數(shù)部分每三位用 , 分割,并且保證小數(shù)點(diǎn)后保留兩位,不足用 0 代替
${num?string(',###.##')}
輸出為:1,239,765.46
整數(shù)部分每三位用 , 分割,并且小數(shù)點(diǎn)后多余兩位就只保留兩位,不足兩位就取實(shí)際位數(shù),可以不不包含小數(shù)點(diǎn)
${num?string('000.00')}
輸出為:012.70
整數(shù)部分如果不足三位(000),前面用0補(bǔ)齊,否則取實(shí)際的整數(shù)位
${num?string('###.00')}
等價(jià)于
${num?string('#.00')}
輸出為:12.70
freemarker數(shù)字格式化帶來的操作問題
freemarker在解析數(shù)據(jù)格式的時(shí)候,自動(dòng)默認(rèn)將數(shù)字按3為分割(1,000),這個(gè)問題給操作帶來一定的額外處理復(fù)雜度,解決方法有如下幾種:
1、在模板中直接加.toString()轉(zhuǎn)化數(shù)字為字符串,如:
${languageList.id.toString()};
2、在freemarker配置文件freemarker.properties加
<#setting number_format="#">或者 <#setting number_format="0">;
3、在模板中直接加<#setting number_format="#">或者<#setting number_format="0">,如:<#if
AdminLanguagePaginationMsg?exists>
<#setting number_format="#">
對(duì)于數(shù)字的格式化,可采用strng 和number_format 設(shè)置
數(shù)字格式化的優(yōu)先級(jí): string優(yōu)先級(jí)最高,配置文件配置的優(yōu)先級(jí)最低,在頁(yè)面setting的優(yōu)先級(jí)在兩者之間。
整數(shù)取實(shí)際的位數(shù)關(guān)于string指令的更多用法,可以訪問官方文檔:http://freemarker.sourceforge.net/docs/ref_builtins_number.html#ref_builtin_string_for_number
分享:jsp簡(jiǎn)單自定義標(biāo)簽的forEach遍歷及轉(zhuǎn)義字符forEach中的items類型是map或者Collection類型的,怎樣使用增強(qiáng)for循環(huán); 首先還是創(chuàng)建一個(gè)標(biāo)簽處理器類,定義兩個(gè)屬性,String var; Object items; 因?yàn)閕tems要迭代各種集合,所以要使用Object; 然后重寫setter方法; www.2cto.com 聲明一個(gè)成員變量,集合類型的,
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實(shí)現(xiàn)
- 網(wǎng)頁(yè)模板:關(guān)于jsp頁(yè)面使用jstl的異常分析
- JSP頁(yè)面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項(xiàng)目中連接Access數(shù)據(jù)庫(kù)的配置方法
- JDBC連接Access數(shù)據(jù)庫(kù)的幾種方式介紹
- 網(wǎng)站圖片路徑的問題:絕對(duì)路徑/虛擬路徑
- (jsp/html)網(wǎng)頁(yè)上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對(duì)路徑下的圖片解決方法
JSP教程Rss訂閱編程教程搜索
JSP教程推薦
- Apache FileUpload的兩種上傳方式介紹及應(yīng)用
- 分割字符串以增強(qiáng)J2ME的String能力
- JSP中可能會(huì)碰到的問題解答
- Java中計(jì)算任意兩個(gè)日期之間的工作天數(shù)
- 構(gòu)造JSP和Javabean開發(fā)和發(fā)布環(huán)境的方法
- JspSmartUpload上傳常見問題解析
- 對(duì)比JSF在Eclipse和NetBeans中的應(yīng)用
- Struts初級(jí)教程(1)-用戶登錄實(shí)例
- JBoss中使用EJB有狀態(tài)bean鈍化時(shí)間設(shè)置
- 解讀真正掌握J(rèn)ava語(yǔ)言需要了解的知識(shí)
猜你也喜歡看這些
- 相關(guān)鏈接:
- 教程說明:
JSP教程-jsp中freemarker 數(shù)字格式化
。