JPviot标签库详解

JPivot是一套基于Mondrian的OLAP前端展现工具,它提供了一套标签库来解决的OLAP的展现层问题。

在一个JSP页面当中,如果要使用JPivot标签库,除了要配置相关的配置文件外,我们需要在JSP头的位置声明对JPivot标签库的引用,引用方法如下:

<%@ tagliburi="http://www.tonbeller.com/jpivot"prefix="jp"%>

JPivot标签库包含以下几个标签:

l         chart

l         chooseQuery

l         clickable

l         destroyQuery

l         mondrianQuery

l         navitator

l         print

l         scalarQuery

l         setParam

l         table

l         testQuery

l         xmlaQuery

接下来我们将详细介绍这些标签的具体用法及相关参数的含义。

chart

创建一个图表组件,这个图表组件的标签不能直接产生可见输出,它必须通过WCF的渲染标签才行。chart标签的主要属性如下:

属性名

必须

数据类型

是否能动态计算指定

描述

id

String

标签的ID

visible

boolean

用来设置该组件是否可见,当该属性为false时WCF标签半角不显示该组件。

role

String

Role的名称,如:role=”tomcat” 就允许当前用户角色为tomcat的访问该控件,role=”!tomcat”则就允许除角色为tomcat以外的所有的用户访问。

query

OlapModel

一个mondrianQuery标签的ID值

baseDisplayURL

String

显示图表的链接,链接的后面还要添加参数“?=filename=[临时图表文件的名称]”

controllerURL

String

链接到JPivot Controller的URL,该属性在一些复杂环境下比如Portal之类就很有用。

chooseQuery

从前面创建的若干个查询当中选择一个合适的查询(通过查询名称进行选择),例如:

<jp:mondrianQuery id="query01" queryName="name1">
   SELECT ...
</jp:mondrianQuery>
<jp:mondrianQuery id="query01" queryName="name2">
   SELECT ...
</jp:mondrianQuery>
...
<jp:chooseQuery id="query01" queryName="name1"/>

它的属性比较简单,只有id和queryName两个,而且比较容易理解。

clickable

该标签的作用是给一个dimension或一个level里的所有的members加上超链,使得它们变的可以进行点击操作。生成的URL中包含这个member的唯一名称,这个标签必须要在一个table或一个query的标签里嵌套使用。

这个动作还依赖于该标签的sessionParam属性,如果该属性存在,那么参数值将在页面显示之前写到com.tonbeller.jpivot.param.SessionParamPool当中,如果不存在该属性,参数将会被编码到超链接当中。

例如:

<jp:mondrianQuery ...>
  select .. from Sales
  <jp:clickable urlPattern="/otherpage.jsp?param={0}" uniqueName="[Customers]"/>
  <jp:clickable page="/yetotherpage.jsp" uniqueName="[Products].[Category]" sessionParam="Category"/>

</jp:mondrianQuery>

该标签的主要属性如下:

属性名

必须

数据类型

是否能动态计算指定

描述

urlPattern

String

该属性已过时,使用page属性替代它。

page

String

目标页面的名称,该属性的值必须要以“/”开始,如果不设置,那么会采用当前页面的名称。

uniqueName

String

一个dimension或hierarchy或level的唯一名称,用来标识哪个member将可以点击。

menuLabel

String

如果多次定义clickable,那么它将通过一个右键来进行显示,这里的值就是右键菜单的名称。

sessionParam

String

参数名称,它将会被回写到com.tonbeller.jpivot.param.SessionParamPool当中。

propertyName

String

该属性如果存在,该member属性的值将会被带到com.tonbeller.jpivot.param.Parameter的sqlValue 的属性当中。

propertyPrefix

String

如果存在该属性,多个SessionParam将会被创建,每一个member的名字的开始部分将采用该属性的值。

providerClass

String

如果存在该属性,这个类的实例将会从当前的member中获取SessionParam对象的实例,这里的类必须实现com.tonbeller.jpivot.table.navi.ClickableMember.ParameterProvider接口。

destroyQuery

该标签的主要作用是销毁所有的查询,它的用法如下:

<jp:destroyQuery id="query01"/>

它只有一个ID属性。

mondrianQuery

该标签的主要作用是让mondrian执行指定的查询,该标签需要指定一个JDBC的datasource或单独指定JDBC连接的各个属性从而可以让mondrian连接到指定的数据库。

它的用法如下:

<jp:mondrianQuery id="query01"
  jdbcDriver="com.mysql.jdbc.Driver"
  jdbcUrl="jdbc:mysql://localhost/foodmart"
  catalogUri="/WEB-INF/test/FoodMart.xml">
select
  {[Measures].[Unit Sales], [Measures].[Store Cost], [Measures].[Store Sales]} on columns,
  {[Product].[All Products]} ON rows
from Sales
where ([Time].[1997])
</jp:mondrianQuery>

它的主要属性如下:

属性名

必须

数据类型

是否能动态计算指定

描述

id

String

标签的ID

jdbcDriver

String

要连接到目标数据库的驱动类名

jdbcUrl

String

目标数据库的URL

jdbcUser

String

登录数据库的用户名

jdbcPassword

String

登录数据库的密码

dataSource

String

可以连接到数据库的JNDI名称,如jdbc/SampleDB,当使用它时另外四个单独连接数据库的属性不可以再用。

catalogUri

String

Mondrian Schema文件所在的路径,指定路径时需要从web应用的根开始,如/WEB-INF/FoodMart.xml。

role

String

指定角色,该角色的值来自Mondrian Schema里定义的角色。

dynResolver

String

指定一个用来解析Mondrian Schema里定义的动态变量的解析类。

connectionPooling

String

当该值为false时,将从连接池里阻止Mondrian

dynLocale

String

设置动态解析Mondrian Schema里的Local

dataSourceChangeListener

String

指定一个类用来检测datasource的变化。

queryName

String

这个属性允许保留多个查询,对于每一个查询,最后一个查询将会被存储下来,可以使用chooseQuery标签在查询间进行切换。

stackMode

boolean

如果设置为false,那么所有的查询将同时被处理;如果设置为true,那么将保持其原有的顺序,例如:

查询名称为qn1的创建后,标签就马上将其显示出来;接下来创建qn2,现在stack里有qn1和qn2,qn2也将被显示出来。

navigator

创建一个导航组件,这个组件不会直接输出,它必须通过WCF的标签来render输出。

示例用法:

<jp:navigator id="navi01" query="#{query01}" visible="false"/>
<wcf:render ref="navi01" xslUri="/WEB-INF/jpivot/navi/navigator.xsl" xslCache="true"/>

该标签的主要属性如下:

属性名

必须

数据类型

是否能动态计算指定

描述

id

String

标签的ID

query

OlapModel

指定一个mondrianQuery标签的名称

visible

boolean

设置该组件是否可见,如果设置为false那么WCF的render标签将不会render该组件。

role

String

角色的名称,可以加前缀“!”,表示“除…角色之外”都可以访问该组件,否则就是只有该角色才能访问该组件。

print

创建一个打印控件,该控件不能直接输出,你必须创建WCF form来调用打印的servlet来生成XLS/PDF文件。

该标签只有一个ID属性。

scalarQuery

创建一个包含由单个单元格的组成的OLAP结果的会话属性,它的值由标签的属性提供。

示例用法:

<jp:scalarQuery
  id="query01"
  value="#{some.bean.property}">
  formattedValue="#{some.bean.otherProperty}"
  caption="Some Caption" />

它的主要属性如下:

属性名

必须

数据类型

是否能动态计算指定

描述

id

String

标签的ID

value

String

是一个EL的表达式,通过EL表达式来计算值,这里是一个数字。

formattedValue

String

用一个EL表达式来计算格式化后的值,是一个字符串

caption

String

用一个EL表达式来生成caption的值,这里是一个字符串

queryName

String

请参考mondrianQuery标签

stackMode

boolean

请参考mondrianQuery标签

selectProperties

创建一个选择属性的组件,该组件不会直接输出,必须要与WCF的render标签结合。

示例用法:

<jp:selectproperties id="selectprop01" table="#{table01}" visible="false"/>
<wcf:render ref="selectprop01" xslUri="/WEB-INF/jpivot/navi/navigator.xsl" xslCache="true"/>

它的主要属性如下:

属性名

必须

数据类型

是否能动态计算指定

描述

id

String

标签的ID

table

TableComponent

该属性用来指定一个表格组件。

visible

boolean

设置该组件是否可见,如果设置为false那么WCF组件将不会显示该组件。

role

String

指定角色,同样可以使用“!”

setParam

通过get或post或session里的值为MDX查询设置查询参数。示例用法:

<jp:mondrianQuery id="query01"...>
  SELECT ... Parameter("Param01", ...
  WHERE ...
</jp:mondrianQuery/>
<jp:setParam query="query01" httpParam="param" mdxParam="Param01"/>
or
<jp:setParam query="query01" sessionParam="CUSTOMER" mdxParam="Param01"/>

它的主要属性如下:

属性名

必须

数据类型

是否能动态计算指定

描述

query

OlapModel

指定一个mondrianQuery标签的名称

httpParam

String

http参数的名称,如果存在该属性,那么它的值将会被告解析并设置到mdx查询的parameter当中

sessionParam

String

Session的参数名称

mdxParam

String

MDX的parameter的名称

table

创建一个pivot的表格组件,该组件要借助于WCF的render标签输出。

示例用法:

<jp:table id="table01" query="#{query01}" visible="true"/>

该标签的主要属性如下:

属性名

必须

数据类型

是否能动态计算指定

描述

id

String

标签的ID

visible

boolean

设置组件是否可见,如果为false那么WCF的标签将不会将其render。

role

String

可访问该组件的角度,支持“!”用法

query

OlapModel

指定一个mondrianQuery标签的名称


你可能感兴趣的:(数据库,String,schema,table,query,WCF)