分页显示列表的学习

1,分页存储结果的JavaBean:UserPage.java
package cn.com.icbc.domain;
import java.util.List;
public class UserPage implements java.io.Serializable {
private Integer curPage;
private Integer sumPage;
private Integer totalRecord;
private Integer perPage;
private List<cn.com.icbc.domain.User> result;
public UserPage() {
}
public UserPage(Integer curPage,Integer sumPage, Integer totalRecord, List<cn.com.icbc.domain.User> result) {
this.curPage = curPage;
this.sumPage = sumPage;
this.totalRecord = totalRecord;
this.result = result;
}
public Integer getCurPage() {
return curPage;
}
public void setCurPage(Integer curPage) {
this.curPage = curPage;
}
public Integer getSumPage() {
return sumPage;
}
public void setSumPage(Integer sumPage) {
this.sumPage = sumPage;
}
public Integer getTotalRecord() {
return totalRecord;
}
public void setTotalRecord(Integer totalRecord) {
this.totalRecord = totalRecord;
}
public List<cn.com.icbc.domain.User> getResult() {
return result;
}
public void setResult(List<cn.com.icbc.domain.User> result) {
this.result = result;
}
public Integer getPerPage() {
return perPage;
}
public void setPerPage(Integer perPage) {
this.perPage = perPage;
}
}
2,service层,ManageSerice.java
  /**
   * 用户管理--搜索用户
   * @param lid
   * @param currPage
   * @param maxPerPage
   * @return
   */
  public cn.com.icbc.domain.UserPage searchUserPage(String lid,int currPage,int maxPerPage){  
    Connection conn = DateBaseUtil.getConnection();
    ProcedureDao ntDao=new ProcedureDao();
ResultSet rs=null;
cn.com.icbc.domain.UserPage up=new cn.com.icbc.domain.UserPage();

String sql1="select count(*) as cont from v_user "+lid;
 
rs=ntDao.listResByPage(conn,sql1);//得到总记录数
int sumRecord=0;
try {
rs.next();
sumRecord=rs.getInt("cont");
if (sumRecord==0){
return null;
}
up.setTotalRecord(sumRecord);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}

int topCount=(currPage- 1)*maxPerPage;
int pageCont=0;//总页数
if(sumRecord%maxPerPage==0){
pageCont=sumRecord/maxPerPage;
}
else{
pageCont=sumRecord/maxPerPage+1;
}
up.setSumPage(pageCont);
if (currPage>pageCont)
currPage=pageCont;
up.setCurPage(currPage);
up.setPerPage(maxPerPage);

sql1="select top  "+topCount+" user_name from [V_user]  "+lid+" order by Reg_Date desc";
String sql="select top "+maxPerPage+" * from [V_user] "+lid +" and not user_name in ("+sql1+") order by Reg_Date desc";

rs=ntDao.listResByPage(conn,sql);
if (rs==null){
return null;
}
else{
try {
List<cn.com.icbc.domain.User> list=new ArrayList<cn.com.icbc.domain.User>();
while(rs.next()){
cn.com.icbc.domain.User tlr=new cn.com.icbc.domain.User();
tlr.setRoleName(rs.getString("RoleName"));
tlr.setAreaName(rs.getString("areaName"));
// tlr.setPName(rs.getString("pName"));
tlr.setUserName(rs.getString("User_name"));
tlr.setUserPassword(rs.getString("User_Password"));
tlr.setUserTrueName(rs.getString("User_TrueName"));
tlr.setLastLoginTime(rs.getDate("Last_LoginTime"));
tlr.setState(rs.getShort("State"));
list.add(tlr);
}
up.setResult(list);
return up;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}finally{
DateBaseUtil.closeConn(conn);
}


}

3,DAO层:ProcedureDao.java
/**
  * 分页显示资源
  * @param conn
  * @param pstr
  * @return
  */
public ResultSet listResByPage(Connection conn,String pstr){
PreparedStatement ps = null;
ResultSet rs =null;
try{
ps = conn.prepareStatement(pstr);
rs = ps.executeQuery();
// ps.close();
}catch (Exception e) {
if(Constant.DEBUG){
e.printStackTrace();
}
}
return rs;
}
4,Action层,TrainClassAction.java
/**
* 管理:新增、删除
*/
@SuppressWarnings("unchecked")
public String usermanage(){
NetTeachService nsService=new NetTeachService();
ManageService mService=new ManageService();
HttpSession session=this.session();
if (session.getAttribute("username")!=null ){
//查看是否有权限进入学习中心
    String error=nsService.roleEdge("F03.01", 3, String.valueOf(session.getAttribute("RoleID")), 0);
    if(!("OK".equals(error))){
    return "failure";
    }
    HttpServletRequest request=this.request();
//     int id = Integer.parseInt(request.getParameter("id"));
//    
//     session.setAttribute("id", id);
   
    if (request.getParameter("btnSubmit")!=null){ 
    if(request.getParameter("chg")!=null){
    String userName="";
String[] roleStrs=request.getParameterValues("chg");
for  (int  i  =  0;  roleStrs!=  null  &&  i  <  roleStrs.length;  i++){ 
String  resultStr  =  roleStrs[i]; 
userName=userName+resultStr+",";
}
userName=userName.substring(0, userName.length()-1);

    cn.com.icbc.service.MessageService messService=new  cn.com.icbc.service.MessageService();
        String actionStr=request.getParameter("proc");    
    if("删除".equals(actionStr)){//
  error=mService.delUser(userName,3,0,0);
    }
    if("锁定".equals(actionStr)){//
  error=mService.delUser(userName,4,9,0);
    }
    if("开通".equals(actionStr)){//
  error=mService.delUser(userName,4,1,0);
    }
    if("屏蔽".equals(actionStr)){//
  error=mService.delUser(userName,4,8,0);
    }
       }
}//btnSubmit
    List<cn.com.icbc.domain.TRole> tRole=mService.getRole(0,1,"","");
    request.setAttribute("tRole",tRole);
    getArea();  
   
    //搜索
    int cat=0;
    int cat1=0;
if (request.getParameter("cat")!=null){
cat=Integer.parseInt(request.getParameter("cat"));
request.setAttribute("cat", cat);
}else{
request.setAttribute("cat", 0);
}
if (request.getParameter("cat1")!=null){
cat1=Integer.parseInt(request.getParameter("cat1"));
request.setAttribute("cat1", cat1);
}else{
request.setAttribute("cat1", 0);
}
int roleID=0;
if (request.getParameter("roleID")!=null){
roleID=Integer.parseInt(request.getParameter("roleID"));
request.setAttribute("roleID", roleID);
}
int maxPer=10;
if (request.getParameter("maxPer")!=null){
maxPer=Integer.parseInt(request.getParameter("maxPer"));
request.setAttribute("maxPer", maxPer);
}else{
request.setAttribute("maxPer", 10);
}

String un="";
if (request.getParameter("un")!=null){
un=String.valueOf(request.getParameter("un"));
request.setAttribute("un", un);
}
int exact=0;
if (request.getParameter("exact")!=null){
exact=Integer.parseInt(request.getParameter("exact"));
request.setAttribute("exact", exact);
}
int statue=1;
if (request.getParameter("statue")!=null){
statue=Integer.parseInt(request.getParameter("statue"));
request.setAttribute("statue", statue);
}else{
request.setAttribute("statue", 1);
}
String pstr=" where state="+ statue;
if(roleID!=0){
pstr=pstr+" and roleID="+roleID;
}
if(cat1!=0){
pstr=pstr+" and AreaID="+cat1;
}
if(cat!=0){
pstr=pstr+" and pid="+cat;
}
if(!"".equals(un)){
if(exact==1){
pstr=pstr+" and user_name ='"+un+"'";
}else{
pstr=pstr+" and user_name like '%"+un+"%'";
}
}
int currPage=1;
    if (request.getParameter("page")!=null){
    currPage=Integer.parseInt(request.getParameter("page"));
    }  
    cn.com.icbc.domain.UserPage up=null;
    up= mService.searchUserPage(pstr,currPage,maxPer);
request.setAttribute("up", up);
String queryStr="cat="+cat+"&cat1="+cat1+"&roleID="+roleID+"&maxPer="+maxPer+"&un="+un+"&exact="+exact+"&statue="+statue;
request.setAttribute("queryStr", queryStr);
   
   
   
    return SUCCESS;    
}else {
this.addActionError("您已长时间未操作,或者还未登录,请重新登录平台!");
return "failure";
}
}
5,view层,viewAllUser.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="cn.com.icbc.domain.TAreaAndDepart"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ include file="/inc/initMeta.jsp"%>
<html>
  <head>
   
    <title>选择要添加的人员</title>
   
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

<script type="text/javascript">

function selectUser(id,name){
if(window.opener){
window.opener.document.all.teacherid.value = id;
window.opener.document.all.teacher.value = name;
window.close();
}
}
function selchange(sel){
var un="";
var val = sel.options[sel.selectedIndex].value;
var url;
for (var i=0;i<form.elements.length;i++)    {
    var e = form.elements[i];
    if (e.name == 'chg')
{
  if (e.checked){
  un=form.elements[i].value+","+un;
  }
}
   }
   if (un==""){
alert("请选择要"+val+"的对象!");
return false;
}
if (val=="充值"){
location.href="user/userCharge.jsp?un="+un,"","width=400,height=200,left=150,top=200";
}
if (val=="更改单位"){
location.href="changeArea.action?un="+un,"","width=400,height=200,left=150,top=200";
}
if (val=="更改角色"){
location.href="changeRole.action?un="+un,"","width=400,height=200,left=150,top=200";
}
if (val=="集体选课"){
   alert("正在建设中!");
//location.href="/netteach/user_ChoseLesson.asp?un="+un,"","width=500,height=500,left=150,top=200";
}
}

function Check(form)  {
  for (var i=0;i<form.elements.length;i++)    {
    var e = form.elements[i];
    if (e.name == 'chg')
  e.checked = form.chkall.checked;
   }
  }
 
  ///判断添加时有没有选择用户
function isSelect(){
var len = document.getElementsByName("chg").length;
var checked = false;
for(var i = 0;i<len;i++){
if(document.addform.chg[i].checked == true){
checked = true;
break;
}
}
if(!checked){
alert("请选择要添加的人员");
return false;
}else if(confirm("你真的要添加吗?")){
return true;
}else{
return false;
}
}
</script>

  </head>
 
  <body>

<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="50%" background="images/btbg.gif" class="xb1">
<img src="images/ico_5.gif" width="15" height="13">
<strong><font color="#669900">您的位置:</font><font color="#660066">
用户管理>></font></td><td align=right  background="images/btbg.gif" class="xb1">
</td>
</tr>
</table>
<form action="viewAllUser.action"  method="post" name="form">
<table width="100%" border="0">
<tr>
<td width="70%">

<table width='100%' border=1 cellspacing=0 cellpadding=1 align=center  bordercolordark=#FFFFFF bordercolorlight=#CCCCCC>
  <tr>
    <td width="22%" >搜索条件</td>
    <td colspan="3" align="right" valign="top"></td>
  </tr>
 
  <tr>
    <td align="right">地区:</td>
<td width="23%">

<script type="text/javascript">
//<![CDATA[
    var ar=new Array()
<%
    int arNum=0 ;
    String cat="";
    String cat1="";
List <TAreaAndDepart> projectList=(List<TAreaAndDepart>) request.getAttribute("areaList");
for(int k=0;k<projectList.size();k++){
TAreaAndDepart projectType=projectList.get(k);
    int projecti=projectType.getAreaId();
    List <Map> courseList=(List<Map>) request.getAttribute("depList");
    for (int i=0;i<courseList.size();i++){
        Map managermap=(Map)courseList.get(i);
List<TAreaAndDepart> list=(List<TAreaAndDepart>)managermap.get(projecti);
if (list!=null){//
for (int j=0;j<list.size();j++){
    if (j==0){
    cat=projectType.getAreaName();
  }else{
  cat="";
    }
    int coursei=list.get(j).getAreaId();
    out.println("ar["+arNum+"]=new Array('"+projecti+"','"+cat+"','"+coursei+"','"+list.get(j).getAreaName()+"')");
    arNum=arNum+1 ;
}
}//IF
    }
}
%>
    function showCat(){
        var catItem=1
        var cat1Item=0
        var i        
            document.all.cat.length=0
            document.all.cat.options[0]=new Option('--所有--','0')
        for(i=0; i < ar.length;i++){
            if (ar[i][1]!==""){
               document.all.cat.options[catItem]=new Option(ar[i][1],ar[i][0])
               if(${requestScope.cat}==ar[i][0]){               
                   document.all.cat.options[catItem].selected=true
               }
                catItem++
            }
            if(ar[i][0]==0){
                document.all.cat1.options[cat1Item]=new Option(ar[i][3],ar[i][2])                 
                cat1Item++
            }
        } //shawl.qiu script
        catChg()
    }
    window.onload=showCat;
    function catChg(){
        var cat1Item=1
        var catSleVal=document.all.cat.value
            document.all.cat1.length=0        
       document.all.cat1.options[0]=new Option('--所有--','0')    
        for (i=0;i<ar.length;i++){
            if(ar[i][0]==catSleVal){
                document.all.cat1.options[cat1Item]=new Option(ar[i][3],ar[i][2])
                if(${requestScope.cat1}==ar[i][2]){               
                   document.all.cat1.options[cat1Item].selected=true
               }
                cat1Item++
            }
        }//shawl.qiu script
    }
//]]>
</script>     
                      <select name="cat" id="cat" onchange="catChg()">
  </select>
  </td>
                  <td width="16%" align=right>单位:</td>
    <td width="39%">
  <select name="cat1" id="cat1">
    <option value='0'>--所有--</option>
  </select>  </td>
  </tr>
  <tr>
    <td align="right">角色:</td>
    <td> 
    <select class='unnamed2' name='roleID'>
      <option value='0'>--所有--</option>
      <c:forEach items="${requestScope.tRole}" var="cast">     
     <option value='${cast.roleId }'
     <c:if test="${cast.roleId eq requestScope.roleID}">selected</c:if>
     >${cast.roleName }</option>
  </c:forEach>
     </select></td>
    <td align="right">显示记录数:</td>
    <td>
    <input name="maxPer" type="text" value="${requestScope.maxPer}" size="3" maxlength="3" class="buttonface">条</td>
  </tr>
  <tr>
    <td align="right">用户名:</td>
<td colspan="3"><input name="un" type="text" value="${requestScope.un}" class="buttonface">
<input name="exact" type="checkbox" value="1" <c:if test="${requestScope.exact eq 1}">checked</c:if>>完全匹配<span class="fupiaoti">
  <input name="btnSubmit2" class="buttonface" type="submit" value="搜索">
</span></td>
  </tr>

  <tr>
  </tr>
</table>

</td>
</tr>

<tr>                 
<td align="center" valign="top">
   <table width=100% cellpadding=0 cellspacing=0 border=0>
   <tr bgcolor='#E2E2E2'>
   <td width=5% class=xb1 align=center>选择</td>
   <td width=5% class=xb1 align=center><font color=#000000>序号</font></td>
   <td align=center class=xb1 width='15%'><font color=#000000>登录名</font></td>
   <td align=center width=15% class=xb1><font color=#000000>姓名</font></td>
   <td align=center width=20% class=xb1><font color=#000000>地区部门</font></td>
   <td align=center width=10% class=xb1><font color=#000000>角色</font></td>
   <td align=center width=10% class=xb1><font color=#000000>登陆密码</font></td>
   <td align=center width=15% class=xb1><font color=#000000>登录时间</font></td>
   </tr>
    <c:set value="${(requestScope.up.curPage-1)*requestScope.up.perPage}" var="xh"></c:set>
<c:forEach var="cast" items="${requestScope.up.result}" varStatus="vs">   
<tr>
<td class=xb1 valign=middle align=center height=22><input type="radio" name="userName" onclick="selectUser('${cast.userName}','${cast.userTrueName}');"></td>
  <td class=xb1 valign=middle align=center height=22>${vs.count +xh}</td>
<td class=xb1 align=left>
<c:choose>
  <c:when test="${cast.state eq 9}">
    <img src="images/news-dian.gif">
  </c:when>
  <c:otherwise>
    <img src="images/news-dian1.gif">
  </c:otherwise>
</c:choose>
    ${cast.userName }
</td>
<td class=xb1 align=center>
      ${cast.userTrueName }
</td>
<td class=xb1 align=center>${cast.areaName }&nbsp;</td>
<td class=xb1 align=center>${cast.roleName }</td>
<td class=xb1 align=center>${cast.userPassword }</td>
<td class=xb1 align=center>${cast.lastLoginTime }&nbsp;</td>
</tr>
</c:forEach>
   </table>
   <!-- 分页的底部 -->
          <c:if test="${requestScope.up.sumPage>1}">
        <c:set value="viewAllUser.action?${requestScope.queryStr}&" var="filename"></c:set>
               <table align='center' class='text' width='100%'>
               <tr bgcolor=white><td colspan=4 align=right>
                <c:if test="${requestScope.up.curPage>1}">
      <a href="${filename}page=1">首页</a>
      <a href="${filename}page=${requestScope.up.curPage-1}">上页</a>
    </c:if>               
    <c:if test="${requestScope.up.sumPage-requestScope.up.curPage>0}">    
    <a href="${filename}page=${requestScope.up.curPage+1}">下一页</a>    
    <a href="${filename}page=${requestScope.up.sumPage}">尾页</a>
    </c:if>
            <font color=red>${requestScope.up.curPage}</font>/
        <font color='#000080'>${requestScope.up.sumPage}页</font>
        <font color='#000080'>&nbsp;&nbsp;共<b>${requestScope.up.totalRecord}</b>篇<b>&nbsp;&nbsp;${requestScope.up.perPage}</b>/页</font>
       </td></tr>
   </table>
           </c:if>
      <!-- 分页的底部结束 -->

</td>
</tr>
</table>
</form>
</body>

</html>

你可能感兴趣的:(DAO,sql,jsp,UP,sun)