Topic: Struts中分页的问题,大家讨论一下各自的做法,相互提高!!

  Print this page

1.Struts中分页的问题,大家讨论一下各自的做法,相互提高!! Copy to clipboard
Posted by: lizwjiang
Posted on: 2003-08-24 21:43

如上,感觉论坛讨论分页的有几篇文章,但不是太多,现在有好多公司在用Struts开发JSP,大家相互交流一下分页的技巧,共同进步!!

2.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: libinbin
Posted on: 2003-08-25 10:05

在 struts 里用 bc4j 分页

3.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: lizwjiang
Posted on: 2003-08-26 18:39

bc4j是什么?能给解释一下吗?

4.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: looluo
Posted on: 2003-08-28 15:59

前几天用了一下struts+hibernate
在hibernate里分页很爽的

Query q = s.createFilter( collection, "" ); // the trivial filter
q.setMaxResults(PAGE_SIZE);
q.setFirstResult(PAGE_SIZE * pageNumber);
List page = q.list();

5.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: looluo] Copy to clipboard
Posted by: wuliang
Posted on: 2003-08-28 17:55

楼上的好像跟struts没干系啊~

6.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: seeuxp
Posted on: 2003-08-29 15:58

bc4j 是一个oracle的商业组件( business component for j2ee ),具体可以参考 http://otn.oracle.com/

7.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: 老刀
Posted on: 2003-08-31 14:00

我完全在后台分页,好像跟框架无关了,在表示层分页我觉得是个很差的想法,而且分页跟任何一种框架应该是无关的,它跟数据过滤属同理。

8.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: floater
Posted on: 2003-09-01 03:43

agree with 老刀 and looluo.

9.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: floater] Copy to clipboard
Posted by: heaven
Posted on: 2003-09-01 22:09

老刀的后台分页是什么意思?中间层?

10.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: yj780210
Posted on: 2003-09-02 09:00

建议看看core j2ee 模式里的Value List Handler
和分页的关系就很密切,可以适当使用。

11.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: wenjianzhang
Posted on: 2003-09-03 14:27

我是在架构中封装了一个Page类.在中间层进行分页的处理.返回到界面的是一个 按page对象分好的arraylist.界面提交请求时,也会带一个page对象

12.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: lizwjiang
Posted on: 2003-09-03 19:34

最近测试通过一个免费的Tag分页,感觉挺爽.分页时不用带参数,而且不需要重新查询数据库.tag见http://jsptags.com/index.jsp.但有个问题是session失效问题.

13.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: floater
Posted on: 2003-09-04 03:40

lizwjiang wrote:
最近测试通过一个免费的Tag分页,感觉挺爽.分页时不用带参数,而且不需要重新查询数据库.tag见http://jsptags.com/index.jsp.但有个问题是session失效问题.

You finally got it. Congrats! Why 感觉挺爽? Tell us the reasons.

Session problem is a little bit subtle. Did you print out the session ids everytime?(The cookie with jsessionid key) Snowbug mentioned this before.

14.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: lizwjiang
Posted on: 2003-09-08 10:00

简单给出利用上面提到的标签库分页的例子:
数据处理过程略过,最后得到的结果集处理后,利用session.setAttribute(“list”,arraylist)传到Jsp页面.
<%@ page language="java" %>
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
<%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%>
<%@ page import="com.fox.test.pm.*"%>
<jsp:useBean id="list" class="java.util.ArrayList" scope="session"/>

<html>
<head>
<title>corpQuery.do</title>
</head>
<body>
<div>
<logic:empty name = "list">
<h2> No records found </h2>
</logic:empty>
<logic:notEmpty name = "list">
<form action="<%= request.getRequestURI() %>" method="get">
<pg:pager
items="<%=list.size() %>"
index="center"
maxPageItems="10"
maxIndexPages="10"
isOffset="<%= true %>"
export="offset,currentPageNumber=pageNumber"
scope="request">

<pg:param name="style"/>
<pg:param name="position"/>
<pg:param name="index"/>
<pg:param name="maxPageItems"/>
<pg:param name="maxIndexPages"/>

<input type="hidden" name="pager.offset" value="<%= offset %>">
<table border="1" cellpadding="0" cellspacing="0" width="100%" align=center>
<tr>
<td>id</td>
<td>name</td>
<td>birth</td>
<td>school</td>
<td>strrth</td>
</tr>
<%CorpQuery cq;
for (int i = offset.intValue(),l = Math.min(i + 10, list.size());i < l; i++){
cq = (CorpQuery)list.getLight Bulb;
%>
<pg:item>
<tr>
  <td><%=cq.getCorpno()%></td>
  <td><%=cq.getCorpnam()%></td>
  <td><%=cq.getCorptyp()%></td>
  <td><%=cq.getCurrency()%></td>
  <td><%=cq.getCostyn()%></td>
</tr>
</pg:item>
<%
}
%>
<tr>
  <td colspan="5" align="center">
   <pg:index>
<jsp:include page="/WEB-INF/jsp/jl.jsp" flush="true"/>
</pg:index>
</td>
</tr>
</table>
</pg:pager>
</form>
</logic:notEmpty>
</div>
</body>
</html>
说明:
1.com.fox.test.pm.*包含你的formbean.即上面提到的CorpQuery类.
2.<jsp:include page="/WEB-INF/jsp/jl.jsp" flush="true"/>其中jl.jsp定义分页的形式,在下载分页的例子中带有7种分页的形式,当然你自己可以定义.具体参看下载包中的例子就很明白了.
3.request.getRequestURI这个固定的写法,不用管,照搬就是了. list.size()得到总的记录数
由于用到session,所以如果页面在一段时间没有刷新的话,再翻页的时候,就没有记录了.大家可以讨论一下.

15.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: 老刀
Posted on: 2003-09-09 19:18

呵呵,我在中间层分页了,大家知道STRUTS基本上是一个只有WEB控制功能的东东,不可能将在大批量代码写在ACTION里,所以你只有加入一层,这一层可以是EJB,也可以是代理类,我采用了代理类;在代理类里实现数据的分页,这个代理类里你可以直接对实体BEAN进行分页,也可以通过JDBC进行内容级分页,反正你想怎么搞就怎么搞了。然后将分页数据打包返回,送到JSP里,就完了。

16.Re:Struts中分页的问题,大家讨论一下各自的做法,相互提高!! [Re: lizwjiang] Copy to clipboard
Posted by: seeuxp
Posted on: 2003-09-10 11:35

to 老刀 :
同意你的观点, Model ---->BL--->Action ---->jsp,在BL中进行分页取得分页数据,用不用EJB我觉得无所谓,只要实现分页功能就可以了。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923