首先注意到两个要点: JPivot 使用 WCF (Web Component Framework) ,基于XML/XSLT来渲染Web UI组件。 JPivot是完全基于taglib的。
1. 寻找突破口 从哪里开始呢,当然是先从demo入手了,在浏览器里面打开demo,点击其中的例子,发现他们指向的链接是 http://localhost/mondrian/testpage.jsp?query=mondiran http://localhost/mondrian/testpage.jsp?query=xmla http://localhost/mondrian/testpage.jsp?query=fourthier 这下比较清楚目标了,先研究一下testpage.jsp吧。
2. testpage.jsp研究 在testpage.jsp中,比较重要的一段是 其中取得参数query的值,并且匹配位置在/WEB-INF/queries/,扩展名是jsp的文件。 另一句指明了query的名称是query01。 注意这两个query是不一样的,wcf的query是http的参数名称叫做query,而jp的query是ondrian的query对象。 在testpage.jsp的后面还定义了form,navigator,chart等等,这里先不做深入研究了。 2.mondrian.jsp研究 下面看看testpage.jsp用到的mondrian.jsp,打开/WEB-INF/queries/mondrian.jsp,哈哈,真是似曾相识啊。这里定义了mondrian的query,它的id是query01,还有jdbc的相关信息。以及这个query对应的mdx查询select语句。 再打开xmla.jsp发现也是同样的结构,这样就比较清楚了。下面就可以依葫芦画瓢,进行我们的测试了。 3.测试 首先写一个mondriantest.jsp放在/WEB-INF/queries目录
select {[Measures].[Salary]} ON COLUMNS, {[Employee].[employeeId].Members} ON ROWS from CubeTest
Test Query uses Mondrian OLAP 这里用到的mondriantest.xml就是上一篇文章中写的那个。 然后在浏览器地址栏输入http://localhost/mondrian/testpage.jsp?query=mondriantest,大功告成,看到我们期望的画面了。