Chinaunix首页 | 论坛 | 博客
  • 博客访问: 807903
  • 博文数量: 780
  • 博客积分: 7000
  • 博客等级: 少将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-12 09:11
文章分类

全部博文(780)

文章存档

2011年(1)

2008年(779)

我的朋友
最近访客

分类:

2008-09-12 09:13:30

最近项目需要,因为时间问题我用最简单的方法做了一个查询分页+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" %>




 
 
 
 

 
 

 
         
           
         
       

              工作申请记录

       
        <%
  //变量声明
  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;
  %>
  
  
  
  
  
  
  <%
  if(intPageCount>0){
  //将记录指针定位到待显示页的第一条记录上
  sqlRst.absolute((intPage-1) * intPageSize + 1);
  //显示数据
  i = 0;
  while(i  %>
  

  

  
  
  
  
  
  <%
  sqlRst.next();
  i++;
  }
  }
  %>
  
  
  
  
  
  
  
  
  <%
  //关闭结果集
  sqlRst.close();
  //关闭SQL语句对象
  sqlStmt.close();
  //关闭数据库
  sqlCon.close();
  %> 
       
已经申请过的职位公司名称申请时间
target="_blank"><%=sqlRst.getString("job")%><%=sqlRst.getString("unit")%><%=sqlRst.getString("date_time")%>>

  首页  
  <%if(intPage>1){%>上一页<%}
  else {%>上一页<%}%>  
  <%if(intPage下一页<%}
  else {%>下一页<%}%>  
  >末页
  

  共 <%=intPageCount%> 页申请记录  
  当前为第 <%=intPage%> 页  
  
 

   





下面是一个Action,基本没处理业务逻辑,就是从Cookie里获得了用户的id.
NoteAction.java

package com.deepdo.apply.action;

import java.util.Map;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.deepdo.apply.form.NoteForm;
import com.deepdo.common.cookie.CookieUtil;

public class NoteAction extends Action{

 public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) {
  NoteForm noteForm = (NoteForm) form;
  String page = noteForm.getPage();
  String userid = null;
  String deepid = null;
  String ddsessid = null;
  String fettle = null;
  //获取Cookie中用户的id
  Map map = null;
  Cookie[] cookies = request.getCookies();
  if(cookies!=null){
   int useCook = 0;
   for(int i = 0; i < cookies.length; i++){
    if((cookies[i].getName()).equals("DEEPDOID")){
     deepid = cookies[i].getValue();
     useCook++;
     }
    if((cookies[i].getName()).equals("DDOSESSID")){
     ddsessid = cookies[i].getValue();
     useCook++;
     }
   }
   if(useCook==2){
    map = CookieUtil.getCookie(deepid,ddsessid);
    if(map!=null){
     userid=(String)map.get("userid");
     fettle=(String)map.get("purview");
     int in = Integer.valueOf(fettle).intValue();
     if(in <= 0) {
      return mapping.findForward("control");
     }
    }
   }
  }
  System.out.println("从Cookie中获取的username是"+userid);
  if(userid==null) {
   System.out.println("用户未登陆");
   return mapping.findForward("forward");
  }
  request.setAttribute("page",page);
  request.setAttribute("userid",userid);
  return mapping.findForward("apply_note");
 }
}

这样处理分页感觉超级简单,这个Action就是起到了一个中转的作用,没有实际业务功能,如果没有他,那个JSP只需要修改一下上下页的连接地址为本身.就可以自己实现查询分页功能.JSP页最后的两个JS方法是负责处理CheckBox全选和,和提交CheckBox的值为的问题的方法.希望朋友们帮忙指点一下我代码中的不足,互相学习互相进步.

【责编:Peng】

--------------------next---------------------

阅读(312) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~