欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
freemarker數據模型(Data Model)
FreeMarker 的數據模型(root 狀模型)可以使用標準的java 類(lèi)(Map,String 等等)
來(lái)表示。在其內部,FreeMarker 使用的數據模型其實(shí)是――――――――――――――――
實(shí)現了freemarker.template.TemplateModel 接口的對象。但是你卻可以使用諸如
java collections 對象作為你的數據模型,這是因為這些數據模型通常會(huì )被(FreeMarker)
在內部轉換成TemplateModel 類(lèi)型的對象。這種功能呢就叫做object wrapping。它可
以透明地把任意對象轉化成TemplateModel 接口類(lèi)型的實(shí)例。例如,它可以轉換
java.sql.ResultSet 對象,也可以轉變javax.servlet.ServletRequest 對象,
甚至可以轉化XML 文檔表示的數據模型。
但是你在轉換這些對象的時(shí)候,必須選取適合的包裹類(lèi)(Wrapper,這些包裹類(lèi)來(lái)實(shí)現
普通對象到TemplateModel 對象的轉化工作,但你也可以自己定制一些Wrapper)。既
然模版可以訪(fǎng)問(wèn)的數據模型必須都是轉化成TemplateModel 后的對象,所以你首先應該
熟悉各個(gè)實(shí)現TemplateModel 接口的子類(lèi)。
TemplateModel 主要有三個(gè)子類(lèi),每一個(gè)子類(lèi)分別表示一種FreeMarker 的基本類(lèi)型,
比如hashes 類(lèi)型用TemplateHashModel 表示, sequence 類(lèi)型實(shí)現用
TemplateSequenceModel 來(lái)表示,numbers 類(lèi)型用TemplateNumberModel 來(lái)表示,
另外,自己也可以定制其他的數據模型的轉化。
舉個(gè)例子,如果你想轉化java.sql.ResultSet 為sequence,那么你只需要寫(xiě)一個(gè)
實(shí)現了TemplateSequenceModel 接口的對象,并且該對象可以讀取ResultSet 然后并把
其轉換成相應的TemplateModel,其實(shí)你要做的僅僅是生成一個(gè)ResultSet 的包裝類(lèi),并
且繼承TemplateSequenceModel 接口。注意:一個(gè)類(lèi)可以實(shí)現多個(gè)TemplateModel
類(lèi)型的接口,這也就是為什么FreeMarker 的變量會(huì )有多種的原因。
注意:在包freemarker.template 中提供了以上這些接口的默認實(shí)現。例如,你要
轉換一個(gè)String 類(lèi)型那么你直接可以使用SimpleScalar,同樣要轉換一個(gè)Map 類(lèi)型你可
以使用SimpleScalar,諸如此類(lèi)等等。
如果你放置到root 數據模型中的對象本身就是實(shí)現了TemplateModel 接口的實(shí)
例,那么Object Wrapper 并不會(huì )去對該對象進(jìn)行任何轉換。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
基于SSM3框架FreeMarker自定義指令(標簽)實(shí)現
JDBC板塊精華整理20051226
JDBC進(jìn)化史---從JDBC1.0到JDBC4.2
JDBC接口規范
ORM
JEECMS自定義標簽開(kāi)發(fā)步驟
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久