javabean:
//分页类
package db;
public class Page {
public Page(){
}
private final static int RecordsPerPage = 2;
private int first_page;
private int prev_page;
private int next_page;
private int last_page;
private int current_page;
private int total_page;
private int start_record;
private int end_record;
public Page(int currentPage, int total_records) {
current_page = currentPage;
if (current_page < 0)
current_page = 0;
total_page = (total_records + RecordsPerPage - 1) / RecordsPerPage;
if (total_page == 0)
current_page = 0;
else if (current_page >= total_page)
current_page = total_page - 1;
start_record = current_page * RecordsPerPage + 1;
end_record = Math.min(start_record + RecordsPerPage - 1, total_records);
if (total_page <= 0) {
first_page = -1;
prev_page = -1;
next_page = -1;
last_page = -1;
} else {
if (current_page > 0) {
first_page = 0;
prev_page = current_page - 1;
} else {
first_page = -1;
prev_page = -1;
}
if (current_page < total_page - 1) {
next_page = current_page + 1;
last_page = total_page - 1;
} else {
next_page = -1;
last_page = -1;
}
}
}
public int getFirstPage() {
return first_page;
}
public int getPrevPage() {
return prev_page;
}
public int getNextPage() {
return next_page;
}
public int getLastPage() {
return last_page;
}
public int getCurrentPage() {
return current_page;
}
public int getTotalPage() {
return total_page;
}
public int getStartRecord() {
return start_record;
}
public int getEndRecord() {
return end_record;
}
}
mysql查询:
public List Select_All_Trade(int currentPage) {
Connection con = null;
con = Dbconn.getConnection();
List ems = new ArrayList();
//分页
Statement stmt = null;
try {
stmt = (Statement) con.createStatement();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
String SQLCount = "select count(*) from trademessagetb";
ResultSet rs_fy = null;
int total_records = 0;
try {
rs_fy = (ResultSet) stmt.executeQuery(SQLCount);
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
try {
rs_fy.next();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
try {
total_records = rs_fy.getInt(1);
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
try {
rs_fy.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
try {
stmt.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
try {
con.setAutoCommit(false);
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
Page pn = new Page(currentPage, total_records);
System.out.println(currentPage);
System.out.println(total_records);
ResultSet rs = null;
int PageSize = 2;
PreparedStatement ps = null;
try {
StringBuffer s = new StringBuffer(
"select * from trademessagetb");
s.append(" ");
s.append("order");
s.append(" ");
s.append("by");
s.append(" ");
s.append("id desc ");
s.append("LIMIT ");
s.append(pn.getStartRecord()-1);
s.append(",");
s.append(PageSize);
String str5 = s.toString();
ps = con.prepareStatement("" + str5);
rs = (ResultSet) ps.executeQuery();
ems = Assemble1(rs);
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
if (con != null)
con.commit();
else
con.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return ems;
}
private List Assemble1(ResultSet rs) {
// TODO Auto-generated method stub
ArrayList results = new ArrayList();
ChangeChar mm = new ChangeChar();
try {
while (rs.next()) {
TradeMessage t = new TradeMessage();
t.setId(rs.getInt("id"));
//System.out.println("测试");
//System.out.println(t.getId());
//System.out.println("测试");
t.setGamename(mm.Char(rs.getString("gamename")));
t.setGamearea(mm.Char(rs.getString("gamearea")));
t.setTradetype(mm.Char(rs.getString("tradetype")));
t.setMessagetype(mm.Char(rs.getString("messagetype")));
t.setTradetitle(mm.Char(rs.getString("tradetitle")));
t.setTradecontent(mm.Char(rs.getString("tradecontent")));
t.setPrice(mm.Char(rs.getString("price")));
t.setLinkman(mm.Char(rs.getString("linkman")));
t.setLinktel(mm.Char(rs.getString("linktel")));
t.setProvince(mm.Char(rs.getString("province")));
t.setCity(mm.Char(rs.getString("city")));
t.setQq(mm.Char(rs.getString("qq")));
t.setEmail(mm.Char(rs.getString("email")));
results.add(t);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return results;
}
action类:
package web;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import tables.TradeMessage;
import com.opensymphony.xwork2.ActionSupport;
import db.Db_Interface;
import db.Db_Interface_Imp;
public class ShowAllTrade extends ActionSupport {
private String current_page;
public String getCurrent_page() {
return current_page;
}
public void setCurrent_page(String current_page) {
this.current_page = current_page;
}
public String execute() throws Exception {
List ems = new ArrayList();
Db_Interface service = new Db_Interface_Imp();
ems = service.Select_All_Trade(Integer.parseInt(current_page));
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("ems",ems);
return "success";
}
}
jsp调用:
<%@ page language="java"
import="java.util.*,tables.TradeMessage,db.Page" pageEncoding="utf-8"%>
<%@ page language="java" import="db.Db"%>
<jsp:directive.page import="db.Db_Interface" />
<jsp:directive.page import="db.Db_Interface_Imp;" />
<html>
<head>
<title>测试显示交易条目</title>
</head>
<body>
<%
Db_Interface service = new Db_Interface_Imp();
int Page_rows = 2;
String counts;
int count = 0;
int Allpage;
counts = service.Tj_Message();
count = Integer.parseInt(counts);
if (count % Page_rows == 0) {
Allpage = count / Page_rows;
} else {
Allpage = count / Page_rows + 1;
}
List ems = new ArrayList();
ems = (List) request.getAttribute("ems");
%>
<%
for (int i = 0; i < ems.size(); i++) {
TradeMessage em1 = null;
em1 = (TradeMessage) ems.get(i);
%>
<a href="show_message.action?id=<%=em1.getId()%>"><font color=red>交易标题:<%=em1.getTradetitle()%>
</font>
</a>
<br />
游戏名称:
<%=em1.getGamename()%>
<br />
区域:
<%=em1.getGamearea()%>
<br />
交易类型:
<%=em1.getTradetype()%>
<br />
信息类别:
<%=em1.getMessagetype()%>
<br />
交易标题:
<%=em1.getTradetitle()%>
<br />
<%
}
%>
<%
int current_page = request.getParameter("current_page") == null ? 0
: Integer
.parseInt(request.getParameter("current_page"));
if (current_page < 0)
current_page = 0;
Db wd = new Db();
Page pn = new Page(current_page,count);
%>
<div class="comments" align=right>
<font size="2"> <%
if (pn.getFirstPage() >= 0) {
%> <a href="show_allmessage.action?current_page=<%=pn.getFirstPage()%>">第一页</a>
<%
} else {
%> <a href="#">第一页</a> <%
}
if (pn.getPrevPage() >= 0) {
%> <a href="show_allmessage.action?current_page=<%=pn.getPrevPage()%>">上一页</a>
<%
} else {
%> <a href="#">上一页</a> <%
}
if (pn.getNextPage() >= 0) {
%> <a href="show_allmessage.action?current_page=<%=pn.getNextPage()%>">下一页</a>
<%
} else {
%> <a href="#">下一页</a> <%
}
if (pn.getLastPage() >= 0) {
%> <a href="show_allmessage.action?current_page=<%=pn.getLastPage()%>">最后一页</a>
<%
} else {
%> <a href="#">最后一页</a> <%
}
%> <font size=2 color=#008000>共<%=Allpage%>页 共<%=count%>条记录 当前是第<%=current_page + 1%>页</font>
</font>
</div>
<br />
</body>
</html>