ALL is Well!
敏捷是一條很長(zhǎng)的路,摸索著前進(jìn)著
BlogJava
::
首頁(yè)
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
30 隨筆 :: 23 文章 :: 71 評(píng)論 :: 0 Trackbacks
<
2010年12月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
公告
聲明:
本博客文章如無(wú)特別注明,均為原創(chuàng),作者保留所有權(quán)利!歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處
BlogJava
。
常用鏈接
我的隨筆
我的文章
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(3)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類(lèi)
Freemarker(4)
(rss)
J2EE(3)
(rss)
J2SE(3)
(rss)
Java(16)
(rss)
JUnit(2)
(rss)
Linux(1)
(rss)
Maven2(8)
(rss)
MyBatis/iBatis(1)
(rss)
POI(1)
(rss)
Quartz(1)
(rss)
Spring(7)
(rss)
Struts2(3)
(rss)
TDD
(rss)
敏捷開(kāi)發(fā)
(rss)
隨筆檔案
2011年4月 (2)
2011年3月 (2)
2010年12月 (4)
2010年11月 (3)
2010年10月 (5)
2010年9月 (26)
文章分類(lèi)
J2EE(1)
(rss)
J2SE(3)
(rss)
JavaScript(1)
(rss)
MyBatis/iBatis
(rss)
POI
(rss)
技術(shù)知識(shí)(6)
(rss)
數(shù)據(jù)庫(kù)(1)
(rss)
經(jīng)驗(yàn)點(diǎn)滴(1)
(rss)
隨筆
(rss)
文章檔案
2010年12月 (1)
2010年9月 (10)
交流社區(qū)
CSDN
eoe(Android開(kāi)發(fā))
JavaEye
友情鏈接
Daniel Teng's blog
Max On Java
我在CSDN的家
胡奇的專(zhuān)欄
學(xué)習(xí)資源庫(kù)
Maven -Available Plugins
maven repository
得益網(wǎng)
搜索
最新評(píng)論
1.?re: JUnit單元測(cè)試Mock技術(shù)之jMock用法介紹
JMockService是啥?
--pjl
2.?re: 通過(guò)Spring實(shí)現(xiàn)對(duì)自定義注解屬性進(jìn)行資源注入
ffhty
--如煩人煩人
3.?re: 詳細(xì)描述 快速排序 的過(guò)程 附Java實(shí)現(xiàn)
誤人子弟啊!
--哥哥
4.?re: POI3.6 生成Excel2007 效率低的解決辦法
本來(lái)就應(yīng)該這樣寫(xiě),而且可以直接在構(gòu)造方法中實(shí)例化這些樣式,然而即使這樣也沒(méi)有根本性的解決問(wèn)題。當(dāng)數(shù)據(jù)量稍微大些,多用戶操作的時(shí)候就不知道怎么死的了。
--老左
5.?re: Java SSH遠(yuǎn)程執(zhí)行Shell腳本實(shí)現(xiàn)
請(qǐng)問(wèn)如果腳本中的命令為top的話請(qǐng)問(wèn)該怎么返回執(zhí)行結(jié)果呢?
--tlone
閱讀排行榜
1.?MyEclipse的Maven插件 安裝與配置(17817)
2.?java代碼實(shí)現(xiàn)利用 classloader 動(dòng)態(tài)加載 jar包、文件夾到classpath中(13709)
3.?Java SSH遠(yuǎn)程執(zhí)行Shell腳本實(shí)現(xiàn)(13611)
4.?JUnit4用法詳解(13219)
5.?JUnit單元測(cè)試Mock技術(shù)之jMock用法介紹(12090)
評(píng)論排行榜
1.?擴(kuò)展Spring-實(shí)現(xiàn)對(duì)外部引用的屬性文件進(jìn)行加密、解密(8)
2.?Java SSH遠(yuǎn)程執(zhí)行Shell腳本實(shí)現(xiàn)(7)
3.?MyEclipse的Maven插件 安裝與配置(7)
4.?freemarker數(shù)字格式化引入的問(wèn)題(6)
5.?iBatis/MyBatis 主子表關(guān)聯(lián)查詢(5)
freemarker數(shù)字格式化引入的問(wèn)題
問(wèn)題
freemarker在解析數(shù)據(jù)格式的時(shí)候,默認(rèn)將數(shù)字按3位來(lái)分割,例如1000被格式化為1,000,這樣做看似美觀,但在實(shí)際操作時(shí)候會(huì)帶來(lái)問(wèn)題。例如我一個(gè)頁(yè)面有一個(gè)元素,該元素的值由后臺(tái)綁定且超過(guò)1000,那么當(dāng)我要使用這個(gè)元素的值的時(shí)候,便會(huì)出現(xiàn)問(wèn)題。
例如,我在ftl文件中這樣寫(xiě):
<
input
type
="hidden"
id
="testElement"
name
="testElement"
value
="${size}"
/>
假設(shè)后臺(tái)綁定的size為1000。
然后我在js里使用這個(gè)testElement元素的值。
var
t
=
$(
"
#testElement
"
);
alert(t);
alert(parseInt(t));
alert(Number(t));
得到的值是:
1,000
1
NaN
這下悲劇了,沒(méi)有一個(gè)是我想要的數(shù)值類(lèi)型1000,這讓我情何以堪啊。
我之前有一個(gè)隨筆,
基于Struts2、Freemarker的分頁(yè)組件實(shí)現(xiàn)(附工程源碼)
,便因?yàn)閒reemarker的數(shù)字格式化問(wèn)題,存在一個(gè)bug。
在數(shù)據(jù)超過(guò)1000時(shí)候,點(diǎn)擊下一頁(yè),便會(huì)報(bào)錯(cuò)。原因是將1,000傳到了后臺(tái),當(dāng)作是總記錄數(shù),而這個(gè)值并非數(shù)值。
解決問(wèn)題
* 在模板中直接加.toString()轉(zhuǎn)化數(shù)字為字符串,如:${size.toString()};
* 在freemarker配置文件freemarker.properties(在類(lèi)路徑下即可)加<#setting number_format="#">;
* 在模板中直接加<#setting number_format="#">;
* 通過(guò)freemarker.template.Configuration的config.setNumberFormat("#")來(lái)設(shè)定freemarker對(duì)數(shù)值的格式化;
其實(shí)后三種方法的思路是一致的,只是實(shí)現(xiàn)方法不同而已。如果應(yīng)用中已經(jīng)存在了
freemarker.properties 并配置了其他的屬性,可以在這里配置,否則推薦使用最后一種方法。
最后我是用最后一種方法解決的問(wèn)題。分頁(yè)組件上的問(wèn)題也解決了。
posted on 2010-12-29 14:54
李 明
閱讀(5834)
評(píng)論(6)
編輯
收藏
所屬分類(lèi):
Freemarker
評(píng)論
#
re: freemarker數(shù)字格式化引入的問(wèn)題
2010-12-29 19:50
disget
${size?c}就可以完成純數(shù)字輸出
LZ火候欠大了
多看多學(xué)習(xí),別閉門(mén)造車(chē)
回復(fù)
更多評(píng)論
#
re: freemarker數(shù)字格式化引入的問(wèn)題
2010-12-30 08:48
禮物
我暈,好好看看文檔再說(shuō)吧,這不是bug
回復(fù)
更多評(píng)論
#
re: freemarker數(shù)字格式化引入的問(wèn)題
2010-12-30 13:12
Ronaldo
回復(fù)樓上:
我有一點(diǎn)很奇怪了。
我有說(shuō)過(guò)這是freemarker的bug嗎?
我是說(shuō)我自己寫(xiě)的東西,因?yàn)楹雎粤诉@一點(diǎn),存在bug。
由于freemarker這種將數(shù)字超過(guò)3位的格式化為形如1,000的,導(dǎo)致了我之前的寫(xiě)一個(gè)分頁(yè)的宏點(diǎn)擊下一頁(yè)或上一頁(yè)時(shí)都會(huì)報(bào)異常。
麻煩看清楚了再評(píng)論。謝謝。
回復(fù)
更多評(píng)論
#
re: freemarker數(shù)字格式化引入的問(wèn)題
2010-12-30 13:23
Ronaldo
@disget
解決問(wèn)題的方式有很多種。你說(shuō)的方法也確實(shí)可行。
但這個(gè)要在每個(gè)需要的地方都要這樣寫(xiě)才行。
回復(fù)
更多評(píng)論
#
re: freemarker數(shù)字格式化引入的問(wèn)題
2012-09-07 14:35
youke
@disget
這是個(gè)辦法但是工作量太大,很是麻煩的。自己水平有限還批評(píng)別人,忒搞笑了吧
回復(fù)
更多評(píng)論
#
re: freemarker數(shù)字格式化引入的問(wèn)題
2012-09-28 10:09
禮物
@Ronaldo
“我之前有一個(gè)隨筆,基于Struts2、Freemarker的分頁(yè)組件實(shí)現(xiàn)(附工程源碼) ,便因?yàn)閒reemarker的數(shù)字格式化問(wèn)題,存在一個(gè)bug。
在數(shù)據(jù)超過(guò)1000時(shí)候,點(diǎn)擊下一頁(yè),便會(huì)報(bào)錯(cuò)。原因是將1,000傳到了后臺(tái),當(dāng)作是總記錄數(shù),而這個(gè)值并非數(shù)值。”
針對(duì)這個(gè)問(wèn)題freemarker可以使用格式化定義: <#setting number_format="0.####">
回復(fù)
更多評(píng)論
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
相關(guān)文章:
freemarker數(shù)字格式化引入的問(wèn)題
基于Struts2、Freemarker的分頁(yè)組件實(shí)現(xiàn)(附工程源碼)
解決 freemarker 變量沒(méi)有值時(shí)拋出異常
基于Struts2和freemarker的異常提示信息的統(tǒng)一處理
Powered by:
BlogJava
Copyright © 李 明
主站蜘蛛池模板:
五峰
|
中阳县
|
苍梧县
|
蓬莱市
|
饶河县
|
乌兰浩特市
|
湖北省
|
阜平县
|
民勤县
|
江达县
|
长阳
|
出国
|
天镇县
|
阜平县
|
准格尔旗
|
三明市
|
潜江市
|
高台县
|
海南省
|
永胜县
|
阳江市
|
辽宁省
|
岢岚县
|
南华县
|
南平市
|
措美县
|
南阳市
|
天峻县
|
新化县
|
平谷区
|
平邑县
|
思茅市
|
丹东市
|
泰和县
|
德格县
|
鹤庆县
|
子长县
|
扶风县
|
太白县
|
永仁县
|
双牌县
|