最近項目需要,因為時間問題我用最簡單的方法做了一個查詢分頁+CheckBox的全選提交,我覺得非常適合小項目和類似郵件列表的功能.下面貼出我的代碼,希望朋友們多給我提毛病.
主要代碼都寫在JSP里.下面是一個apply_note.jsp:
<%@page contentType="text/html;charset=GBK" language="java"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.deepdo.common.connect.ConSql"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<style type=text/css>
td,th,p,span,div,a,A {font-size:12px;text-decoration:none}
.blak a {color:#000; text-decoration:none}
.blak a:hover {color:#f00; text-decoration:underline}
</style>
<body>
<jsp:include page="/include/deepdo.jsp" flush="true"/>
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0"? height="450">
? <tr>
?<td valign="top" class="bg_td1" height="450" width="160">
?<jsp:include page="/include/navigation.jsp" flush="true"/>
?</td>
?<td valign="top" class="bg_td1" height="450" width="540">
?<table width="590" border="0" align="center" cellpadding="2" cellspacing="2" bgcolor="#FAF9F5">
????????? <tr>
??????????? <td background="resume/images/color.jpg" class="font4"> <img src="resume/images/dot.gif">
????????????? 工作申請記錄</td>
????????? </tr>
??????? </table>
??????? <table width="590" border="0" align="center" cellpadding="4" cellspacing="2">
??????? <%
??//變量聲明
??Connection sqlCon; //數據庫連接對象
??Statement sqlStmt; //SQL語句對象
??ResultSet sqlRst; //結果集對象
??String strCon; //數據庫連接字符串
??String strSQL; //SQL語句
??int intPageSize; //一頁顯示的記錄數
??int intRowCount; //記錄總數
??int intPageCount; //總頁數
??int intPage; //待顯示頁碼
??String strPage;
??int i;
??//設置一頁顯示的記錄數
??intPageSize = 10;
??//取得待顯示頁碼
??strPage = request.getParameter("page");
??if(strPage==null){//表明在QueryString中沒有page這一個參數,此時顯示第一頁數據
??intPage = 1;
??}
??else{//將字符串轉換成整型
??intPage = java.lang.Integer.parseInt(strPage);
??if(intPage<1) intPage = 1;
??}
??//獲取一個TOMCAT配置的連接池
? sqlCon = ConSql.getCon();
??//創建一個可以滾動的只讀的SQL語句對象
??sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
??//準備SQL語句
??strSQL = "select * from apply_note where userid="+request.getAttribute("userid");
??//執行SQL語句并獲取結果集
??sqlRst = sqlStmt.executeQuery(strSQL);
??//獲取記錄總數
??sqlRst.last();
??intRowCount = sqlRst.getRow();
??//記算總頁數
??intPageCount = (intRowCount+intPageSize-1) / intPageSize;
??//調整待顯示的頁碼
??if(intPage>intPageCount) intPage = intPageCount;
??%>
??<tr>
??<td align="center" bgcolor="#efefef" width="150" height="27">已經申請過的職位</td>
??<td align="center" bgcolor="#efefef" width="140" height="27">公司名稱</td>
??<td align="center" bgcolor="#efefef" width="75" height="27">申請時間</td>
??<td align="center" bgcolor="#efefef" width="25" height="27"><input type=CheckBox name="selectAll" onClick="selectAll();"></td>
??</tr>
??<%
??if(intPageCount>0){
??//將記錄指針定位到待顯示頁的第一條記錄上
??sqlRst.absolute((intPage-1) * intPageSize + 1);
??//顯示數據
??i = 0;
??while(i<intPageSize && !sqlRst.isAfterLast()){
??%>
??<form name ="noteForm" action="noteRemove.do" method="post">
??<tr>
??<td><a href=<%=sqlRst.getString("url")%> target="_blank"><%=sqlRst.getString("job")%></a></td>
??<td><%=sqlRst.getString("unit")%></td>
??<td><%=sqlRst.getString("date_time")%></td>
??<td width="26" align="center"><input type=CheckBox name="id" value=<%=sqlRst.getString("id")%>></td>
??</tr>
??<%
??sqlRst.next();
??i++;
??}
??}
??%>
??<tr>
??<td>
??<a href="note.do?page=1">首頁</a>
??<%if(intPage>1){%><a href="note.do?page=<%=intPage-1%>">上一頁</a><%}
??else {%><a href="#" title="已經是第一頁">上一頁</a><%}%>
??<%if(intPage<intPageCount){%><a href="note.do?page=<%=intPage+1%>">下一頁</a><%}
??else {%><a href="#" title="已經是最后一頁">下一頁</a><%}%>
??<a href=note.do?page=<%=intPageCount%>>末頁</a>
??</td>
??<td>
??共 <%=intPageCount%> 頁申請記錄
??當前為第 <%=intPage%> 頁
??</td>
??<td> </td>
??<td align="center"><input type="submit" value="刪除" onClick="manageSubmit();"></td>
??<input type="hidden" name="checkvalue" value="">
??</tr>
??</form>
??<%
??//關閉結果集
??sqlRst.close();
??//關閉SQL語句對象
??sqlStmt.close();
??//關閉數據庫
??sqlCon.close();
??%>?
??????? </table>
??? </td>
? </tr>
</table>
<jsp:include page="/include/tail.html" flush="true"/>
</body>
<script language="javascript">
function manageSubmit(){
?var ChkEls=document.getElementsByName("Id");
?var checkedIds="";
?for(var i=0;i<ChkEls.length;i++){
??if(ChkEls.item(i).type != "checkbox")continue;
??var oEl = ChkEls.item(i);
??if(oEl.checked) {
???checkedIds = checkedIds + (oEl.value + ",");
??}
?}
?document.noteForm.checkvalue.value = checkedIds;
?if ( checkedIds == "" ) return false;
?return true;
}
function selectAll(){
?var ChkEl = document.getElementsByName("selectAll").item(0);
?var ChkEls=document.getElementsByName("Id");
?for(var i=0;i<ChkEls.length;i++){
??if(ChkEls.item(i).type != "checkbox")continue;
??var oEl = ChkEls.item(i);
??oEl.status=ChkEl.status;
?}
}
</script>
</html>
下面是一個Action,基本沒處理業務邏輯,就是從Cookie里獲得了用戶的id.
這樣處理分頁感覺超級簡單,這個Action就是起到了一個中轉的作用,沒有實際業務功能,如果沒有他,那個JSP只需要修改一下上下頁的連接地址為本身.就可以自己實現查詢分頁功能.JSP頁最后的兩個JS方法是負責處理CheckBox全選和,和提交CheckBox的值為的問題的方法.希望朋友們幫忙指點一下我代碼中的不足,互相學習互相進步.
posted on 2006-06-02 10:57
我心依舊 閱讀(3977)
評論(2) 編輯 收藏