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

java + struts2 分页技术

2015-07-14 15:01 399 查看
在面试的时候遇到一大神把我彻底问傻,回来后恶补。自己写个了分页,现在贴出来供大家分享、指正;废话不多说,代码走起。

test.jsp页面,程序从该页面进入,点击提交找action

" />
    
    My JSP 'test.jsp' starting page

action类

public class SplitAction extends ActionSupport implements ServletRequestAware{

	private SplitPage splitPage = new SplitPage();
	public SplitPage getSplitPage() {
		return splitPage;
	}
	public void setSplitPage(SplitPage splitPage) {
		this.splitPage = splitPage;
	}
	HttpServletRequest request;
	public String execute()throws Exception{
		
		HttpSession session = request.getSession();
		ArrayList arrayList = new ArrayList();
		SplitDao sd = new SplitDao();
		
		
		ArrayList aList = new ArrayList();
		arrayList = sd.execute();
		aList = sd.getAll();
		
		int maxpage = aList.size();
		int page = maxpage/4 + ((maxpage % 4 == 0)?0 : 1);
		
		splitPage.getNowpage();
		splitPage.getRadpage();
		
		session.setAttribute("list",arrayList);
		session.setAttribute("page", page);
		session.setAttribute("maxpage", maxpage);
		session.setAttribute("currpage", 1);
		session.setAttribute("splitPage", splitPage);
				
		return "success";
	}
		
	public String select (){
		HttpSession session = request.getSession();
		SplitDao sd = new SplitDao();
		ArrayList aList = new ArrayList();
		ArrayList arrayList = new ArrayList();

		int total = splitPage.getNowpage();
		int currpage = splitPage.getRadpage();
		  
		aList = sd.getAll();
		int maxpage = aList.size();
		int page = maxpage/total + ((maxpage % total == 0)?0 : 1);//总页面数
		
  		if(currpage > page){	
			currpage = page;
			splitPage.setRadpage(page);
		}else if(currpage < 1){
			currpage = 1;
			splitPage.setRadpage(1);
		}
		
		arrayList = sd.query(currpage,total);
		
		session.setAttribute("list", arrayList);
		session.setAttribute("maxpage", maxpage);
		session.setAttribute("page", page);
		session.setAttribute("currpage", currpage);

		return "success";
	}
	
	public ArrayList getAll(){
		HttpSession session = request.getSession();
		ArrayList arrayList = new ArrayList();
		SplitDao sd = new SplitDao();
		
		arrayList = sd.getAll();
		return arrayList;
	}
	@Override
	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}
	
}

Dao层,数据库链接及处理语句

public class SplitDao {
	
	DbUtil dbUtil = new DbUtil();
	GuaHao gh = null;
	
	public ArrayList execute(){
		String sql = "select * from t_ghinfo limit 0,4" ;
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		ArrayList arrayList = new ArrayList();
				
		try {
			conn = dbUtil.getConn();
			 ps = conn.prepareStatement(sql);
			 rs = ps.executeQuery();
			while (rs.next()) {
				gh = new GuaHao();
				gh.setGhDesc(rs.getString("ghDesc"));
				gh.setGhNo(rs.getString("ghNo"));
				gh.setOfficeName(rs.getString("officeName"));
				arrayList.add(gh);			
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			dbUtil.Close(conn, ps, rs);
		}
		
		return arrayList;
	}
	
	public ArrayList query(int page,int total){
		page = (page -1) * total;
		String sql = "select * from t_ghinfo limit " ;
		sql  += page +"," + total;
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		ArrayList arrayList = new ArrayList();
		try {
			conn = dbUtil.getConn();
			 ps = conn.prepareStatement(sql);
			 rs = ps.executeQuery();
			while (rs.next()) {
				gh = new GuaHao();
				gh.setGhDesc(rs.getString("ghDesc"));
				gh.setGhNo(rs.getString("ghNo"));
				gh.setOfficeName(rs.getString("officeName"));
				arrayList.add(gh);			
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			dbUtil.Close(conn, ps, rs);
		}
		
		return arrayList;
	}
	
	public ArrayList getAll(){
		String sql = "select * from t_ghinfo" ;
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		ArrayList arrayList = new ArrayList();
		
		try {
			conn = dbUtil.getConn();
			 ps = conn.prepareStatement(sql);
			 rs = ps.executeQuery();
			while (rs.next()) {
				gh = new GuaHao();
				gh.setGhDesc(rs.getString("ghDesc"));
				gh.setGhNo(rs.getString("ghNo"));
				gh.setOfficeName(rs.getString("officeName"));
				arrayList.add(gh);			
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			dbUtil.Close(conn, ps, rs);
		}
		
		return arrayList;
	}
	
}

SplitPage类

public class SplitPage {

	private int nowpage = 4;//每页显示的条数
	private int currentpage = 1;//当前页,默认是第一页
	private int first = 1;//首页
	private int totalpage = 0;//总页数
	private int radpage = 1;//用户选择的页数,默认是第一页
	
	public int getNowpage() {
		return nowpage;
	}
	public void setNowpage(int nowpage) {
		this.nowpage = nowpage;
	}
	public int getCurrentpage() {
		return currentpage;
	}
	public void setCurrentpage(int currentpage) {
		this.currentpage = currentpage;
	}
	public int getFirst() {
		return first;
	}
	public void setFirst(int first) {
		this.first = first;
	}
	public int getTotalpage() {
		return totalpage;
	}
	public void setTotalpage(int totalpage) {
		this.totalpage = totalpage;
	}
	public int getRadpage() {
		return radpage;
	}
	public void setRadpage(int radpage) {
		this.radpage = radpage;
	}
	
	public int getAllPage(int alldata,int nowpage){
		
		int page = (alldata / nowpage + (alldata % nowpage == 0?0 : 1) );
		return page;
	}
	
}

jsp页面

<%
      	  	SplitPage splitPage = new SplitPage();
		  	Object pageIndex = session.getAttribute("currpage");
		  	Object maxpage = session.getAttribute("page");

		  	int currpage = Integer.parseInt(pageIndex.toString());
		  	int pagemax = Integer.parseInt(maxpage.toString());
  	%>
  
  
    <%
  	Object obj = session.getAttribute("list");
  	if(obj != null){
  		ArrayList al = (ArrayList)obj;
  		for(int i = 0; i < al.size();i++){
  			GuaHao guaHao = (GuaHao)al.get(i);
  			String desc = guaHao.getGhDesc();
  			String no = guaHao.getGhNo();
  			String officename = guaHao.getOfficeName(); 		
   %>
    	
    		<%
  		}
  	}    
     %>
    
descnoofficename
<%=desc %> <%=no %><%=officename %>
每页条第 页 共页
首页上一页下一页尾页


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: