步骤1:我们在EmployeeService类中增加新方法getAllForPage,增加后完整代码如下:
package com.bstek.dorado.sample.standardlesson.service; import java.util.Collection; import javax.annotation.Resource; import org.springframework.stereotype.Component; import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.data.provider.Page; import com.bstek.dorado.sample.standardlesson.dao.SlEmployeeDao; import com.bstek.dorado.sample.standardlesson.entity.SlEmployee; @Component public class EmployeeService { @Resource private SlEmployeeDao slEmployeeDao; @DataProvider public Collection<SlEmployee> getAll(){ return slEmployeeDao.getAll(); } @DataProvider public void getAllForPage(Page<SlEmployee> page){ slEmployeeDao.getAll(page); } }
我们可以发现getAllForPage方法和getAll方法的差别,首先是getAllForPage没有了返回值,另外传入了page参数。
对于需要支持分页处理的DataProvider方法,要求必须包含一个Page参数,Page参数是Dorado7中支持分页的一个工具类,采用分页技术处理后,每次请求一个新的分页数据都会产生一个DataProvider的AJAX请求,在这个请求动作中,客户端会自动上传每页需要加载的数据是多少条(pageSize)和现在需要加载的数据是第几页的(pageNo)。这些信息都会由 DataProvider处理机制自动将信息放在Page对象中,并激活DataProvider方法。这样我们就可以在DataProvider方法中 通过page对象的getPageSize()和getPageNo()方法获取客户端分页请求的基本分页信息。并交给后台做数据查询的DAO做进一步的 处理。处理后的数据存放在Page对象中,并传递到前台进行展示。