强制上下限分页

来源:互联网 发布:java界面设计myeclipse 编辑:程序博客网 时间:2024/06/08 05:15

ProjectDao.java

package com.hf.star.dao;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.hf.star.util.*;


import com.hf.star.entity.Project;


public class ProjectDao {
private static final String findAll ="select id,username,start_date,end_date from t_project";
private static final String findAll2 ="select id,username,start_date,end_date from t_project limit ?,?";
private static final String allRows ="select count(*) from t_project";
public static void main(String[] args){
ProjectDao pd = new ProjectDao();
List<Project> list = pd.findAll(2,5);
for(Project p : list ){
System.out.println(p.getUsername());
}
}

public int getTotalPages(int rowsPerPage){
Connection con = null;
PreparedStatement stmt = null;
ResultSet rs = null;
int totalRows = 0;

try {
con = ConnetionUtil.openConnection();
stmt = con.prepareStatement(allRows);
   rs = stmt.executeQuery();
   rs.next();   
  totalRows = rs.getInt(1);

} catch (SQLException e) {

e.printStackTrace();
}
 
   if(totalRows % rowsPerPage==0){
    return totalRows/rowsPerPage;
   }else{
    return totalRows/rowsPerPage+1;
   }


}

public List<Project> findAll(int page,int rowsPerPage){
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs =null;
List<Project> list= null;
try {
conn = ConnetionUtil.openConnection();
stmt = conn.prepareStatement(findAll2);
stmt.setInt(1, (page-1)*rowsPerPage);
stmt.setInt(2, rowsPerPage);
rs   = stmt.executeQuery();
list = new ArrayList<Project>();
while(rs.next()){
Project project = new Project();
project.setId(rs.getInt(1));
project.setUsername(rs.getString(2));
project.setStart_date(rs.getDate(3));
project.setEnd_date(rs.getDate(4));
list.add(project);
}

} catch (SQLException e) {
e.printStackTrace();
}

return list;
}

public List<Project> findAll(){
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs =null;
List<Project> list= null;
try {
conn = ConnetionUtil.openConnection();
stmt = conn.prepareStatement(findAll);
rs   = stmt.executeQuery();
list = new ArrayList<Project>();
while(rs.next()){
Project project = new Project();
project.setId(rs.getInt(1));
project.setUsername(rs.getString(2));
project.setStart_date(rs.getDate(3));
project.setEnd_date(rs.getDate(4));
list.add(project);
}

} catch (SQLException e) {
e.printStackTrace();
}

return list;
}

}



welcomeAction.java


package com.hf.star;


import java.util.List;


import com.opensymphony.xwork2.ActionSupport;
import com.hf.star.dao.ProjectDao;
import com.hf.star.entity.*;




public class WelcomeAction extends ActionSupport{
private List<Project> projects;
private int page = 1;
private int totalpages ;


public int getTotalpages() {
return totalpages;
}


public void setTotalpages(int totalpages) {
this.totalpages = totalpages;
}


public int getPage() {
return page;
}


public void setPage(int page) {
this.page = page;
}


public List<Project> getProjects() {
return projects;
}


public void setProjects(List<Project> projects) {
this.projects = projects;
}


@Override
public String execute() throws Exception {
ProjectDao projectdao = new ProjectDao();
projects = projectdao.findAll(page,5);
totalpages = projectdao.getTotalPages(5);
return "success";
}


}


welcome.jsp


<%@page pageEncoding="utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<html>
<head>
</head>

<body>
<h1>
 Project list
</h1>
<h2>
<c:choose>
<c:when test="${page gt 1}"><a href="welcome.action?page=${page-1}">上一页</a></c:when>
<c:otherwise>上一页</c:otherwise>
</c:choose>
|第${page}页|
<c:choose>
<c:when test="${page lt totalpages}"><a href="welcome.action?page=${page+1}">下一页</a></c:when>
<c:otherwise>下一页</c:otherwise>
</c:choose>
</h2>

<table width="90%" border="2">
<tr>
<td>ID</td>
<td>NAME</td>
<td>START DATE</td>
<td>END DATE</td>
</tr>
<c:forEach items ="${projects}" var="project">
<tr>
<td>${project.id}</td>
<td>${project.username}</td>
<td>${project.start_date}</td>
<td>${project.end_date}</td>
</tr>
</c:forEach>
</table>
</body>


</html>

原创粉丝点击