jpiviot源码阅读

来源:互联网 发布:辽宁大学网络与新媒体 编辑:程序博客网 时间:2024/05/14 00:31

1.每个请求道WEB服务器的时候被com.tonbeller.wcf.controller.RequestFilter拦截
   1.1 在ThreadLocal中建立Stack对象,
   1.2 建立RequestContext对象并把该对象保存到Stack中,
   1.3 建立WcfController对象并且保存到session中(键值WcfController.class.getName() + ".dispatcher";),该对象对于一个SESSION只有一个。
2.mondrianQuery标签
   2.1 根据MondrianOlapModelTag.class.getResource("/com/tonbeller/jpivot/mondrian/config.xml")用digester创建MondrianModel对象,并且根据标签提供的属性设置MondrianModel对象
   2.2 创建stackState模式的OlapModelProxy对象,并且以键值ID保存到SESSION中
   2.3 以MondrianModel对象为参数调用OlapModelProxy.initializeAndShow方法
3.每个table标签
   3.1根据标签中的query属性,找到第2步建立的OlapModel对象
   3.2根据getClass().getResource("config.xml")和TableComponent.class.getResource("rules.xml");建立TableComponent对象。
   3.3将新建立的TableComponent对象以标签的id属性为键值,存储到session中。
4.每个render标签
   4.1根据ref找到TableComponent对象
   4.12调用TableComponent对象的render方法生成TableComponent的XML表示
   4.13Transformer对象的transform方法,将xml转换成HTML输出

原创粉丝点击