<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 70,comments - 408,trackbacks - 0

    最近項(xiàng)目需要,因?yàn)闀r(shí)間問題我用最簡單的方法做了一個(gè)查詢分頁+CheckBox的全選提交,我覺得非常適合小項(xiàng)目和類似郵件列表的功能.下面貼出我的代碼,希望朋友們多給我提毛病.
    主要代碼都寫在JSP里.下面是一個(gè)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; //數(shù)據(jù)庫連接對象
    ??Statement sqlStmt; //SQL語句對象
    ??ResultSet sqlRst; //結(jié)果集對象
    ??String strCon; //數(shù)據(jù)庫連接字符串
    ??String strSQL; //SQL語句
    ??int intPageSize; //一頁顯示的記錄數(shù)
    ??int intRowCount; //記錄總數(shù)
    ??int intPageCount; //總頁數(shù)
    ??int intPage; //待顯示頁碼
    ??String strPage;
    ??int i;
    ??//設(shè)置一頁顯示的記錄數(shù)
    ??intPageSize = 10;
    ??//取得待顯示頁碼
    ??strPage = request.getParameter("page");
    ??if(strPage==null){//表明在QueryString中沒有page這一個(gè)參數(shù),此時(shí)顯示第一頁數(shù)據(jù)
    ??intPage = 1;
    ??}
    ??else{//將字符串轉(zhuǎn)換成整型
    ??intPage = java.lang.Integer.parseInt(strPage);
    ??if(intPage<1) intPage = 1;
    ??}
    ??//獲取一個(gè)TOMCAT配置的連接池
    ? sqlCon = ConSql.getCon();
    ??//創(chuàng)建一個(gè)可以滾動(dòng)的只讀的SQL語句對象
    ??sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
    ??//準(zhǔn)備SQL語句
    ??strSQL = "select * from apply_note where userid="+request.getAttribute("userid");
    ??//執(zhí)行SQL語句并獲取結(jié)果集
    ??sqlRst = sqlStmt.executeQuery(strSQL);
    ??//獲取記錄總數(shù)
    ??sqlRst.last();
    ??intRowCount = sqlRst.getRow();
    ??//記算總頁數(shù)
    ??intPageCount = (intRowCount+intPageSize-1) / intPageSize;
    ??//調(diào)整待顯示的頁碼
    ??if(intPage>intPageCount) intPage = intPageCount;
    ??%>
    ??<tr>
    ??<td align="center" bgcolor="#efefef" width="150" height="27">已經(jīng)申請過的職位</td>
    ??<td align="center" bgcolor="#efefef" width="140" height="27">公司名稱</td>
    ??<td align="center" bgcolor="#efefef" width="75" height="27">申請時(shí)間</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);
    ??//顯示數(shù)據(jù)
    ??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>&nbsp;&nbsp;
    ??<%if(intPage>1){%><a href="note.do?page=<%=intPage-1%>">上一頁</a><%}
    ??else {%><a href="#" title="已經(jīng)是第一頁">上一頁</a><%}%>&nbsp;&nbsp;
    ??<%if(intPage<intPageCount){%><a href="note.do?page=<%=intPage+1%>">下一頁</a><%}
    ??else {%><a href="#" title="已經(jīng)是最后一頁">下一頁</a><%}%>&nbsp;&nbsp;
    ??<a href=note.do?page=<%=intPageCount%>>末頁</a>
    ??</td>
    ??<td>
    ??共 <%=intPageCount%> 頁申請記錄&nbsp;&nbsp;
    ??當(dāng)前為第 <%=intPage%> 頁&nbsp;&nbsp;
    ??</td>
    ??<td>&nbsp;</td>
    ??<td align="center"><input type="submit" value="刪除" onClick="manageSubmit();"></td>
    ??<input type="hidden" name="checkvalue" value="">
    ??</tr>
    ??</form>
    ??<%
    ??//關(guān)閉結(jié)果集
    ??sqlRst.close();
    ??//關(guān)閉SQL語句對象
    ??sqlStmt.close();
    ??//關(guān)閉數(shù)據(jù)庫
    ??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>
    下面是一個(gè)Action,基本沒處理業(yè)務(wù)邏輯,就是從Cookie里獲得了用戶的id.

    這樣處理分頁感覺超級(jí)簡單,這個(gè)Action就是起到了一個(gè)中轉(zhuǎn)的作用,沒有實(shí)際業(yè)務(wù)功能,如果沒有他,那個(gè)JSP只需要修改一下上下頁的連接地址為本身.就可以自己實(shí)現(xiàn)查詢分頁功能.JSP頁最后的兩個(gè)JS方法是負(fù)責(zé)處理CheckBox全選和,和提交CheckBox的值為的問題的方法.希望朋友們幫忙指點(diǎn)一下我代碼中的不足,互相學(xué)習(xí)互相進(jìn)步.

    posted on 2006-06-02 10:57 我心依舊 閱讀(3977) 評(píng)論(2)  編輯  收藏

    FeedBack:
    # re: 簡單的查詢分頁+CheckBox的全選提交,解決方法.
    2006-06-11 11:09 | 青誠
    你的這段程序邏輯上是沒有問題,但如果是數(shù)據(jù)量非常大的話,運(yùn)行起來就會(huì)有問題。另外最關(guān)鍵的是你在jsp里面頻繁的打開關(guān)閉連接等是很浪費(fèi)資源的,還有我認(rèn)為在jsp就只應(yīng)該完成顯示功能,不應(yīng)該包含具體的業(yè)務(wù)邏輯。  回復(fù)  更多評(píng)論
      
    # re: 簡單的查詢分頁+CheckBox的全選提交,解決方法.
    2007-03-29 16:16 | shining
    暈啊 將那么多java代碼寫在jsp頁面上,這也算MVC嗎???
    給你一些建議吧!
    1)將分頁邏輯封裝在一個(gè)bean里面,bean里面只接收3個(gè)參數(shù)(起始頁,分頁單位,待分頁的List), 在Action里面分好頁后將bean傳給jsp,再在jsp中通過${obj.value}的表達(dá)式來引用當(dāng)前頁數(shù),全部頁數(shù),等屬性.
    2)CheckBox的全選提交方法可以寫在一個(gè)外部的js文件檔里面,然后引用就OK了.

    看來你還比較缺乏OO的思維啊!  回復(fù)  更多評(píng)論
      

    只有注冊用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲精品tv久久久久久久久久| 亚洲αv久久久噜噜噜噜噜| 一本久久免费视频| 亚洲人成人网站色www| 在线视频精品免费| 男人扒开添女人下部免费视频 | 亚洲a在线视频视频| 成熟女人牲交片免费观看视频| g0g0人体全免费高清大胆视频| 亚洲AV午夜成人影院老师机影院 | 久久午夜无码免费| 在线亚洲午夜片AV大片| 中文亚洲AV片在线观看不卡| 久久精品国产免费观看| 九九久久精品国产免费看小说| 日产亚洲一区二区三区| 成人亚洲网站www在线观看| 99热这里只有精品免费播放| 青娱乐在线免费观看视频| 久久精品亚洲中文字幕无码麻豆| 国产成人啪精品视频免费网| 久久国产乱子伦免费精品| 污污污视频在线免费观看| 亚洲国产激情在线一区| 亚洲妇熟XXXX妇色黄| 国产男女猛烈无遮挡免费视频| 57pao国产成永久免费视频| 日亚毛片免费乱码不卡一区| 亚洲日本va在线观看| 亚洲国产一成人久久精品| 免费观看日本污污ww网站一区| 免费看片在线观看| 伊人免费在线观看高清版| 国产精品无码亚洲一区二区三区| 亚洲黄色在线网站| 亚洲精品卡2卡3卡4卡5卡区| 丁香亚洲综合五月天婷婷| 在线精品免费视频无码的| 亚洲精品视频在线免费| 免费观看91视频| 国产三级在线免费观看|