如何用JSP从DOMINO 的VIEW里抓出来的资料,如何对其分页

slzhang 2004-08-12 10:27:14
我要从DOMINO里的一个数据库的VIEW里抓出资料来.我实现了对过JSP所有的资料2000多笔都抓出来了.现在有一个问题是如何控制其显示到browser里每50个记录就显示一页.通过"[首页|上一页|下一页|最后一页]这样的链结来进行翻页.
不知道如何控制这部分.请问如何写JSP文件.我现在的代码如下:

<%@ page contentType="text/html; charset=Big5" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="lotus.domino.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Big5">
<link rel="stylesheet" href="style.css" type="text/css">
<title>世昕員工總數</title>

</head>

<body>
<%!
Session sess;
Database db;
View view;
Document doc;
String host="";
String user="";
String pawd="";
int counter=0; //所有的文件數
int pagePercent = 20; //每頁的記錄數
int pageTotal = 0; //總共有多少頁
int pageCurrent = 0; //當前頁
int start = 0; //記錄開始
%>
<%
//要實現分頁,則要按每頁顯示記錄來抓出資料.
//而不是把所有的資料都抓出來.
try{
host = request.getParameter("host");
user = request.getParameter("user");
pawd = request.getParameter("pawd");

sess = NotesFactory.createSession(host,user,pawd);
db = sess.getDatabase(sess.getServerName(),"fawen\\personal.nsf");
System.out.println("Database title is " + db.getTitle());
view = db.getView("OvertimeList");
out.println(view.getUniversalID() + "\t" + view.getName());
if (view.getEntryCount() > 0){
counter = (new java.lang.Integer(view.getEntryCount())).intValue();
pageTotal = (counter + pagePercent -1)/pagePercent;
System.out.println("總共有文件記錄" + counter + "以每頁顯示<b>" + pagePercent + "</b>條記錄,共有" + pageTotal + "頁");
} else {
System.out.println("No documents in view");
}
doc = view.getFirstDocument();
}catch(NotesException ne){
ne.printStackTrace();
}
%>
<center>
<form name="form1">
<%
int cur=0;
System.out.println("counter=" + counter);
while(doc!=null&cur<counter){
out.println("<hr color=\"blue\">");
out.println("<font color=\"Red\" size=20><b>" +db.getTitle() +"</b></font>");
int max=50;
doc = view.getNextDocument(doc);
out.println("<hr>");
out.println("<table border=\"1\">");
out.println("<tr><td>工號</td><td>姓名</td><td>部門</td><td>日期</td><td>職務</td></tr>");
//這里是算每頁要顯示的數據
while(doc!=null & max>0){
cur++;

out.println("<tr>");
out.println("<td>" + doc.getItemValueString("empid") + "</td>");
out.println("<td>" + doc.getItemValueString("cname") + "</td>");
out.println("<td>" + doc.getItemValueString("depname") + "</td>");
out.println("<td>" + doc.getItemValue("startdate") + "</td>");
out.println("<td>" + doc.getItemValueString("jobtitle") + "</td>");
out.println("</tr>");

doc=view.getNextDocument(doc);
max--;
System.out.println("max=" + max + "; cur=" + cur);
}
out.println("</table>");
}
%>

</form>
<%
out.println("總記錄" + counter);
out.println("總頁數" + pageTotal);

%>
</center>
</body>
<script language="Javascript">
<!--
function setPage(){
var doc1 = document.form1;
doc1.totalrecds.value=counter;
doc1.totalpages.value=pageTotal;
}
// -->
</script>
</html>

...全文
124 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
javatool 2004-08-12
  • 打赏
  • 举报
回复
可以试试JavaCellReport, http://www.javatoolsoft.com/cn
完全解决分页的问题...

67,512

社区成员

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

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