首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
TechnoFantasy (52)
feifei1018 (19)
coofucoo (108)
qingrun (67)
btbtd (83)
longrujun (64)
cyz1980 (101)
ssll2826 (10)
EmilMatthew (73)
goodboy1881 (15)
CSDN - 文档中心 - Java 阅读:1702   评论: 0    参与评论
标题   穷人的通用OLAP方案III--JPivot表现层     选择自 calvinxiu 的 Blog
关键字   穷人的通用OLAP方案III--JPivot表现层
出处  

   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上的<wcf:include>根据query参数,匹配/WEB-INF/query/下的modrain.jsp来获取数据       

     3,modrain.jsp上的<jp:mondrianQuery id="query01">查询数据,放入到query01变量中

     4,testPage.jsp上的<jp:table id="table01" query="#{query01}"/>根据query01的结果(领域数据) 准备显示OLAP表格所需的数据(显示数据)

     5,testPage.jsp上的<wcf:render ref="table01" xslUri="/WEB-INF/jpivot/table/mdxtable.xsl"/>根据table01的结果,使用xsl,渲染出OLAP表格。

     6,循环第4,5步,使用<jp:navigator>等tag准备navigator,chart的数据然后用<wcf>渲染出图表和导航系统.

     整个流程,第2步的testPage充当Controller调用第3步的Model层,然后第4,5步 执行Martin Flower讲的Transform Engine两步渲染模式----先从领域数据(比如一些java bean)中转换出格式整齐的,需要显示的数据(比如一段xml),再用xsl将其渲染为最终的表现形式。


相关文章
对该文的评论