JPivot 是Mondrian的表現層TagLib,一直保持著良好的開發進度。 已經好久沒有用了,趁徹底忘記以前,把小小的心得記下來。
1.漢化 1.1 查找所有resources.properties文件,漢化為resources_zh.properties文件 1.2 native2ascii resources_zh.properties resources_zh.propertIEs 1.3 查找WEB-INF/jpivot下的所有xml文件,漢化為xxx_zh.XML
2.架構 JPivot的架構看似另類,但其實都是精明的選擇。 2.1 使用XML/ XSLT渲染OLAP報表 JPivot 使用 WCF (Web Component Framework) ,基於XML/XSLT來渲染Web UI組件。這使它顯得十分另類。不過,OLAP報表這種非常復雜但又有規律可循的東西,最適合使用XSLT來渲染。雖然程序員和編輯器都很不喜歡這種Martin Flower口中有點LISP形式的語言,但Transform Engine這時候的確能比Template Engine(Velocity,Freemarker)更高效的處理OLAP報表及其導航系統的顯示。 2.2 完全基於JSP+TagLib JPivot另外一個可能使人不慣的地方是它完全基於taglib而不是大家熟悉的MVC模式。但如果不基於tabLib,基於任何MVC框架都會使其失去通用性,擔不起Mondrain唯一表現層的重任,而且,MVC其實不一定需要那些框架(後述) 2.3 典型的流程及模式:
打開JPivot自帶的sample,查看index.JSP文件,典型的流程如下:
1,用戶發出 testPage.JSp?query=modrain的請求 2,testPage.JSP上的
3,modrain.JSP上的
4,testPage.JSP上的
5,testPage.JSP上的
6,循環第4,5步,使用
整個流程,第2步的testPage充當Controller調用第3步的Model層,然後第4,5步 執行Martin Flower講的Transform Engine兩步渲染模式----先從領域數據(比如一些Java bean)中轉換出格式整齊的,需要顯示的數據(比如一段XML),再用xsl將其渲染為最終的表現形式。