DODataset的使用方式与CustomDataset基本上是一样的,比较两种类型Dataset的属性,可以看到DODataset多了一个contextAttribute属性和supportsPaging属性。
contextAttribute是用来设置与DODataset进行数据交换的上下文属性名。当我们设定了此属性之后DODataset会在执行装载数据时自动到上下文对象的该属性中寻找DO类型的数据, 如果找到了相应的数据将自动尝试将其装载到DODataset中; 在执行数据更新时DODataset会自动尝试将数据更新到上下文中存贮的数据对象上。接下来我们通过一个例子来说明这个属性的使用方法。
1.还是采用我们在CustomDataset里做的那个页面,新建一个DODataset名为datasetTest,把在datasetUser上的所有属性移到datasetTest上(listener除外),删除datasetUser。并将datasetTest的contextAttribute属性设置为"testParam",同时将Controls节点下的DataTable所绑定的dataset改为datasetTest。如下图:
图表 53
2.添加一个Servlet,代码如下:
package test; |
将该servlet配置到web.xml 中,配置代码如下:
<servlet> |
test-view.jsp代码如下:
<%@ page contentType="text/html; charset=UTF-8" %> |
启动工程访问刚才配置的servlet,可以看到如下页面:
图表 54
从显示的效果当中可以看到放到HttpServletRequest的Attribute里的数据被Dorado引擎取出来并填充到了DODataset里了。
supportsPaging属性指定了DODataset是否会自动根据pageSize和pageIndex属性的值确定数据的分页方式,默认值为false。由此我们可以看出DODataset支持在内存中实现分页的功能。打开这个属性,我们可以把数据全部塞给DODataset,设置好它的pageSize属性就可以让DODataset自己实现分页了(由于是在内存中实现分页功能,所以最好是数据量比较小的情况下比如几十条,如果数据量比较大建议不要采用这个方式)。
打开上面的例子,我们给datasetTest的pageSize属性设置为3,supportsPaging属性设置为true,清空其contextAttribute属性值,并为该dataset添加一个listener,afterLoadData方法的代码如下:
public void afterLoadData(Dataset dataset) throws Exception { |
同时在Controls节点添加一个PagePilot并将其绑定到datasetTest上,然后将其放到JSP中,如下图:
图表 55
启动工程直接浏览test-view.jsp效果,同时我们可以看到十条记录已经被DODataset自动分页显示。如下图:
图表 56
DODataset的主要属性
属性名 |
说明 |
contextAttribute |
设置与DODataset进行数据交换的上下文属性名。当我们设定了此属性之后DODataset会在执行装载数据时自动到上下文对象的该属性中寻找DO类型的数据, 如果找到了相应的数据将自动尝试将其装载到DODataset中; 在执行数据更新时DODataset会自动尝试将数据更新到上下文中存贮的数据对象上。 |
supportsPaging |
是否支持内存分页 |
Attachments:
worddavfc6491edaf59759ce2ba2251daac2032.png (image/png)
worddav1aaff15dfa4d68d8c56acb92bcbbb8dc.png (image/png)
worddav20bd9f8df363091bd23a18b1a95d7f5c.png (image/png)