您的位置:首页 > 编程语言 > Java开发

struts2+mysql 实现分页效果

2012-03-14 12:40 483 查看
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>

代码贴完 说的不是很详细 我也是新手 大家多交流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: