除了能夠使用JSP這種常用的頁(yè)面呈現(xiàn)外, Spring MVO還整合了其他常用數(shù)據(jù)格式的頁(yè)面展現(xiàn),比如 Excels數(shù)據(jù)。在呈現(xiàn) Excel視圖時(shí), Spring并沒(méi)有開發(fā)自己的Exce實(shí)現(xiàn)方案,而是使用已有的 JJava Exce解決方案來(lái)生成Exce件,然后通過(guò)與MvC框架的整合,把生成的Excel文件輸出到HTTP的Response中,在HTTP的客戶端展現(xiàn)出來(lái)。Spring3.0分別提供了POI和 JEXCelAPI兩個(gè)方案在MVC框架中的整合,它們的使用分別對(duì)應(yīng)兩個(gè)view類:Abstract ExcelView和 AbstractJExcelView。在這里,以PO的實(shí)現(xiàn)為例,對(duì)在 Spring Mvc中展示Excl視圖的實(shí)現(xiàn)原理做一個(gè)簡(jiǎn)要的分析。
在 AbstractExcel view中, Excel視圖的呈現(xiàn)是通過(guò)POI來(lái)完成的,可以看到,POI的對(duì)象 HSSFWorkbook用來(lái)在PO中抽象 Excel-文件的對(duì)象。這個(gè)工作簿可以從模板 Excely件里取得,模板 Excel-件可以通過(guò)URL來(lái)指定,也可以通過(guò) HSSFWorkbook對(duì)象生成一個(gè)新的 Excel文件。在得到代表 Excel件的 HSSFWorkbook對(duì)象以后,就是通過(guò)這個(gè)對(duì)象對(duì)Exc件中的數(shù)據(jù)進(jìn)行處理。這些文件的數(shù)據(jù)處理沒(méi)有在 AbstractExcel viewl中實(shí)現(xiàn),而是交給應(yīng)用去完成的,這里為該實(shí)現(xiàn)定義了一個(gè)抽象方法 buildExcelDocument,應(yīng)用需要實(shí)現(xiàn)該抽象方法,以完成自己的數(shù)據(jù)操作。完成Exce的數(shù)據(jù)操作后, Excel文件就已經(jīng)準(zhǔn)備好了,下面介紹把它輸出到HTP客戶端的過(guò)程。首先需要設(shè)置HTTP響應(yīng)的輸出類型,以便客戶端進(jìn)行識(shí)別。完成設(shè)置后,把HSSFWorkbook對(duì)象代表的數(shù)據(jù)輸出到HTTP響應(yīng)中,這樣就完成了在服務(wù)器端的Exce視圖呈現(xiàn)過(guò)程。
咨詢熱線
010-85377344
135-21581588
微信客服
QQ客服
3026106565 點(diǎn)擊咨詢