我实际上正在使用 Spring 3 MVC 并使用PagedListHolder
从我的服务层传递方法以从 DB 表中获取所有行的分页列出数据,如下所示:
PagedListHolder myList = new PagedListHolder(myService.getAll());
这是我的控制器代码:
public class MyListController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
String page = request.getParameter("page");
MyService myService = new MyService();
PagedListHolder myList = new PagedListHolder(myService.getAll());
myList.setPageSize(5);
if ("next".equals(page)) {
myList.nextPage();
}
else if ("previous".equals(page)) {
myList.previousPage();
}
ModelAndView modelAndView = new ModelAndView("myList");
modelAndView.addObject("myList", myList.getPageList());
return modelAndView;
}
}
所以,这是完美的,但我现在想myList
通过使用关键字进行搜索,我认为通常的方式可能是在DAO
和Service
层中实现方法,例如:
...
String keyword = request.getParameter("keyword");
PagedListHolder myList = new PagedListHolder(myService.findByWord(keyword));
...
此时myList
将返回数据库中与我的关键字匹配的所有行。
我想知道的是是否有一种方法可以搜索myList
(使用myService.getAll();
方法,也许还有其他方法PagedListHolder
),并避免修改DAO
和Service
层,以免创建额外的方法,就像我在上面的示例中使用的方法一样。
提前致谢。