小弟 很急```解决问题后分数会追加
解决方案 »
- 求教Eclipse中保存时编码规范的问题!!
- 关于网络编程中无法接收客户端的数据问题,求解?
- Hibernate可以直接访问public,private和protected的访问方法和field
- 在配置tomcat数据源的时候,可不可以同时配四个数据库的连接???高手指教
- 求助:jsp错误如何修改!!!!
- Jboss 中 javax.naming.NameNotFoundException: Authentication not bound问题
- 大哥们救急呀!请你们关注一下可以吗?
- struts编程问题求救!
- 什么是web services?
- 编写java程序,提供用户登录界面。
- ERROR org.apache.struts.action.RequestProcessor
- No WebApplicationContext found: no ContextLoaderListener registered?-----
第二种方式嘛,就是常用的动态分页啦。你在后台需要提供两个个分页查询方法:
A方法:传入两个参数(1:从第几行开始;2:查多少条),这个方法的实现也简单,要么用sql要么用hibernate的分页,将指定的数据集查出来就可以了。
附一个分页的hibernate实现:
public List getTaskConfsByPage(final int firstResult, final int maxResults) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,
SQLException {
String hql="from TaskConf as tc order by tc.id desc";
Query query = s.createQuery(hql);
query.setFirstResult(firstResult);
query.setMaxResults(maxResults);
return query.list();
}
});
}
B方法:查询出总的有多少条记录。这个最简单,就是count(*)
public long getTaskConfCount() {
String hql="select count(*) from TaskConf as tc";
List list = getHibernateTemplate().find(hql);
if (!list.isEmpty()) {
return ((Long) list.get(0)).longValue();
} else {
return 0;
}
}有了这两个方法,你就可以在jsp中或struts的action中调用并获得两个对象(一个是结果集,一个是总记录数),把这两个东西放到request中,等待jsp中的displaytag使用。
String pageIndexName = new org.displaytag.util.ParamEncoder("taskConfList").encodeParameterName(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE); // 页数的参数名
int pageSize = 10; //每页显示的条数
int pageIndex = GenericValidator.isBlankOrNull(request.getParameter(pageIndexName))?0:(Integer.parseInt(request.getParameter(pageIndexName)) - 1); //当前页数
List resultList = mgr.getTaskConfsByPage(pageIndex*pageSize, pageSize);
request.setAttribute("taskConfList", resultList);
long resultSize = mgr.getTaskConfCount();
request.setAttribute("taskConfSize", new Integer(new Long(resultSize).intValue()));回到jsp的displaytag配置部分:
<display:table name="taskConfList" cellspacing="0" cellpadding="0"
id="taskConfList" pagesize="10" class="table taskConfList"
export="false" requestURI="" partialList="true" size="taskConfSize">
<display:column><input type="checkbox" name="taskConfCheck" value="<c:out value="${taskConfList.id}" />" /></display:column>
<display:column property="taskName" sortable="true" headerClass="sortable"
url="/editTaskConf.html" paramId="id" paramProperty="id"
titleKey="taskConfForm.taskName"/>
</display:table>
这里就不难看懂了,name="taskConfList"指的就是request中的结果集的名称,size="taskConfSize"指的就是总记录数。
特别注意的是partialList="true",这是告诉displaytag使用动态分页,如果没有这个设置,那就是刚才说的一次性查询的模式。