SSH分页查询 大家应该都知道

HEdeeds 2011-05-17 08:59:02
首先开始在FORM表单中提交 查询比如 172.12.13.14

然后返回了分页的结果 ,但是当点击下一页的时候 获取不到我刚才输入的 172.12.13.14

返回的只是默认(空)条件下的查询结果
我的分页查询语句例如 <a href="IpShopAction.action?pageNo=<s:property value="%{pageBean.pageNo+1}"/>">下一页</a>
我知道只是提交了下一页的命令 但是没有提交你的上面的查询条件


本人刚刚做这个 大家提出宝贵意见!!!谢谢
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengmianzhi 2011-05-18
  • 打赏
  • 举报
回复
查询条件肯定要传过去的,要不然程序就不知道你要查的是什么了
duben4814 2011-05-18
  • 打赏
  • 举报
回复
你的意思是下一页和查询条件都传递过去?
你带的参数就只有一个pageNo呢,把哪个Criteria也以一个String的方式传过去,再在action里实现条件查询和下一页的筛选。
hzfree007 2011-05-18
  • 打赏
  • 举报
回复
查询条件需要不断传递下去
fengjincc 2011-05-17
  • 打赏
  • 举报
回复
如果我没理解错的话,楼主您说的意思应该是带条件查询分页吧,
我的做法一般都是,把条件也以参数传过去,
<a href="oa/news.shtml?method=toIndex&pageNo=${pageModel.nextPageNo}&newsTypeId=1001">
action和dao的代码如下

action
public ActionForward toIndex(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String pageNo_str = request.getParameter("pageNo");
int pageNo = 1;
if (StringUtils.isNotBlank(pageNo_str)) {
pageNo = Integer.valueOf(pageNo_str);
}
String newsTypeId = request.getParameter("newsTypeId");
request.setAttribute("pageModel", newsService.getNewsForPage(pageNo, Integer.parseInt(newsTypeId)));
return mapping.findForward("index");
}

dao:

public PageModel<News> getNewsForPage(int pageNo, final int newsTypeId) {
final PageModel<News> pageModel = new PageModel<News>();
pageModel.setPageNo(pageNo);
pageModel.setPageSize(5);
pageModel.setTotalRecords(this.getTotalRecords(newsTypeId));
List<News> dataset = (List<News>) getHibernateTemplate().executeFind(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session
.createQuery("from News where newsType.id=? order by id asc");
query.setInteger(0, newsTypeId);
query.setFirstResult(pageModel.getStartRow());
query.setMaxResults(pageModel.getPageSize());
return query.list();
}
});
pageModel.setDataset(dataset);
return pageModel;
}

private int getTotalRecords(int newsTypeId) {
List list = getHibernateTemplate().find("select count(*) from News n where n.newsType.id = ?",newsTypeId);
if (list == null || list.isEmpty()) {
return 0;
} else {
return ((Long) list.get(0)).intValue();
}
}

HEdeeds 2011-05-17
  • 打赏
  • 举报
回复
补充一下 其实就是每次点击下一页之后返回的都是根据你的查询条件的结果

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧