1.首先写一个实体类, 写上相应的构造方法 get set 方法,这里就不贴代码了
2.写一个类 查询数据库
package com.shuan.user;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.shuan.conn.ConnectionManager;
import com.shuan.exception.DBOperException;
import com.shuan.user.UserVO;
public class UserListImpl{
PreparedStatement titleQuery = null ;
ResultSet results = null ;
Connection conn=null;
@SuppressWarnings("unchecked")
public List<UserVO> queryByPage(int i,int pageSize){
List<UserVO> users=new ArrayList();
conn=ConnectionManager.getConnection();
String sql = "select * from t_user where f_state=1 order by f_userid asc limit "+ i +","+ pageSize;
try
{
titleQuery=conn.prepareStatement(sql);
results=titleQuery.executeQuery();
while(results.next())
{
UserVO u1=new UserVO();
u1.setUserid(results.getInt("f_userid"));
u1.setUsername(results.getString("f_username"));
u1.setPassword(results.getString("f_password"));
u1.setName(results.getString("f_name"));
u1.setJigou(results.getString("f_jigou"));
u1.setState(results.getInt("f_state"));
i++;
users.add(u1);
}
results.close() ;
titleQuery.close() ;
}
catch(Exception e)
{
System.out.println(e) ;
}
finally
{
ConnectionManager.closeConnection(conn);
}
return users;
}
//查询总行数
public int count() {
int intRowCount = 0;//总行数
conn=ConnectionManager.getConnection();
String sql = "select count(f_userid) from t_user where f_state=1 order by f_userid asc";
try
{
titleQuery=conn.prepareStatement(sql);
results=titleQuery.executeQuery();
results.next();//游标指向第一行
intRowCount=results.getInt(1);//取得总行数
results.close() ;
titleQuery.close() ;
}
catch(Exception e)
{
System.out.println(e) ;
}
finally
{
ConnectionManager.closeConnection(conn);
}
return intRowCount;
}
}
3. 写action
package com.shuan.action;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpSession;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.shuan.user.UserImpl;
import com.shuan.user.UserListImpl;
import com.shuan.user.UserVO;
public class ListAction extends ActionSupport {
int i=1;//中间变量
private int k;//储存最大页面数
private int pageNow=1; //页码数,初始为1
private int pageSize = 10 ; //页面行数
private int intRowCount;//总行数
private int intPageCount;//总页数
private UserVO user;
private List<UserVO> users;
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public int getK() {
return k;
}
public void setK(int k) {
this.k = k;
}
public int getPageNow() {
return pageNow;
}
public void setPageNow(int pageNow) {
this.pageNow = pageNow;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getIntRowCount() {
return intRowCount;
}
public void setIntRowCount(int intRowCount) {
this.intRowCount = intRowCount;
}
public int getIntPageCount() {
return intPageCount;
}
public void setIntPageCount(int intPageCount) {
this.intPageCount = intPageCount;
}
public UserVO getUser() {
return user;
}
public void setUser(UserVO user) {
this.user = user;
}
public List<UserVO> getUsers() {
return users;
}
public void setUsers(List<UserVO> users) {
this.users = users;
}
/**
* by:zfn
* 查询用户列表
*/
public String queryList() throws Exception{
UserListImpl u=new UserListImpl();
intRowCount=u.count();
k=(intRowCount + pageSize - 1) / pageSize;
intPageCount = (intRowCount + pageSize - 1) / pageSize;//计算出总页数
if(pageNow<1){
pageNow=1;
}
if(pageNow > intPageCount)
pageNow=intPageCount;
i = (pageNow -1)*pageSize;
UserListImpl us=new UserListImpl();
if(null!=us.queryByPage(i,pageSize)){
users = us.queryByPage(i,pageSize);
return "userList";
}else{
return "userList";
}
}
}
4.编写strutsxml
<action name="pageList" class="com.shuan.action.ListAction" method="queryList">
<result name="userList" type="dispatcher">/view/pageList.jsp</result>
</action>
5.在jsp页面中粘入下面代码,<s:iterator value="users" status="status">
这句话里面的users 是 步骤2中 最后获得的值 这两个值名称一点要相同
<center>
共<s:property value="intRowCount"/>记录
第<s:property value="pageNow"/>页
<s:url id="url_pre" value="pageList.action">
<s:param name="pageNow" value="pageNow-1"></s:param>
</s:url>
<s:url id="url_next" value="pageList.action">
<s:param name="pageNow" value="pageNow+1"></s:param>
</s:url>
<s:iterator value="users" status="status">
<s:url id="url" value="pageList.action">
<s:param name="pageNow" value="pageNow"/>
</s:url>
</s:iterator>
<s:if test="pageNow==1">
<s:a href="%{url_pre}">最前一页</s:a>
</s:if>
<s:else>
<s:a href="%{url_pre}">上一页</s:a>
</s:else>
<s:if test="pageNow==k">
<s:a href="%{url_next}">最后一页</s:a>
</s:if>
<s:else>
<s:a href="%{url_next}">下一页</s:a>
</s:else>
</center>
代码贴完 说的不是很详细 我也是新手 大家多交流