freemarker生成XB,xml,htmL,word等等模板入門案例二 複雜數據結構 List集合及list嵌套集合

在之前的博文 freemarker生成xml,htmL,word等等模板入門案例已經寫關於入門和數據結構;這裏在次說明一下;

在中文網上有關於數據模型的http://freemarker.foofun.cn/dgui_quickstart_datamodel.html的說明

1.這裏從實際使用說明,先看圖,後續看代碼(此部分代碼不可運行,缺省內容,工作代碼),後續有時間再調整一下,如有不對之處還請指正,謝謝!(開發XB文件(上報證監會臨時公告文件)期間所寫,感興趣的話可交流),其他html,word等都一樣,word中動態生成表格的行列後續補充。由於所有博文並無有序順序,請見諒!


2.代碼部分

public static void generateXBFile(Jjjlbggg bg){

Map<String,Object> map = new HashMap<String,Object>(); //數據模型

    //新任基金經理的處理
List<Xrjjjl> xrList = bg.getXrjjjl();  //獲取實體中的list集合對象

if(xrList!=null) {  

List<Map<String, Object>> xrjlList = new ArrayList<Map<String,Object>>();  //放入數據模型map中的List<map>,第一層

for (int i = 0; i < xrList.size(); i++) {
Xrjjjl xr = xrList.get(i);
Map<String, Object> xrjl = new HashMap<String,Object>();  //放入list集合中的map
xrjl.put("XinRenJiJinJingLiXingMing",xr.getXrjjjlxm()); //新任基金經理姓名
xrjl.put("Gj",xr.getGj()); //國籍
xrjl.put("Xlxw",xr.getXlxw()); //學歷、學位
xrjl.put("Zczt",xr.getZczt()); //是否已按規定在中國基金業協會註冊/登記[11]
xrjl.put("Jlqtxx",xr.getJlqtxx()); //注[12]:(2713,文本框)

List<Glgmjj> mj = xr.getGlgmjj(); //管理過公募基金的名稱及期間,此處獲取的是List<Xrjjjl> xrList 中Xrjjjl的list
if(mj!=null) {
List<Map<String, Object>> mjList = new ArrayList<Map<String,Object>>(); //第二層list<map>
for (int j = 0; j < mj.size(); j++) {
Glgmjj glgmjj = mj.get(j);
Map<String, Object> mjmap = new HashMap<String,Object>();
mjmap.put("GuanLiGuoGongMuJiJinDeJiJinDaiMa",glgmjj.getJjzdm()); //基金主代碼
mjmap.put("GuanLiGuoGongMuJiJinDeJiJinMingCheng",glgmjj.getJjmc()); //基金名稱
mjList.add(mjmap);
}
xrjl.put("mjList", mjList);   //放入第二層的list<map>中
}
xrjlList.add(xrjl);  //放入數據模型map中的List<map>中的List<map>
}
map.put("xrjlList", xrjlList); //放入數據模型中的map
}

}

3.圖解結構

//爲了更清晰的理解,看下圖


頁面的話,則是取你存的名字,第一個名字也就是第一個List<map>,第二個則是你存到第第一個list<map>中的List<map>

說簡單就是Map中map

map.put("xrjlList", xrjlList);

xrjl.put("mjList", mjList);

對應實體就是list集合下的對象裏包含的list集合,模板中取的話就是類似點屬性的方式,主要也是key-value的結構,名稱的話不能相同,遵循map的規則吧,key唯一

<#list xrjlList as xrjl >
這句話就是去集合中的元素,別名是xrjl

4.模板文件中的內容,可以將裏面的內容全部去掉保留結構

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章