java和jsp代码能共用吗,JSP通用高大上分页代码(超管用)

04fc29f00063dfd27956f87ebce5195e.png

先给大家展示下分页效果,如果亲们还很满意请参考以下代码。

61be787ee04b7ee7ba887b692582c92e.png

在超链接中要保留参数

当使用多条件查询后,然后在点击第2 页时,这个第2页超链接没有条件了,所以会丢失条件,所以我们需要在页面上的所有链接都要保留条件!

我们要把条件以一个字符串的形式保存到PageBean的url中!这个任务交给Servlet!

pagebean

package cn.itcast.cstm.domain;

import java.util.List;

public class PageBean {

private int pc;// 当前页码page code

//private int tp;// 总页数total page

private int tr;// 总记录数total record

private int ps;// 每页记录数page size

private List beanList;// 当前页的记录

private String url;//它就是url后的条件!

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

public int getPc() {

return pc;

}

public void setPc(int pc) {

this.pc = pc;

}

/**

* 计算总页数

* @return

*/

public int getTp() {

// 通过总记录数和每页记录数来计算总页数

int tp = tr / ps;

return tr%ps==0 ? tp : tp+1;

}

// public void setTp(int tp) {

// this.tp = tp;

// }

public int getTr() {

return tr;

}

public void setTr(int tr) {

this.tr = tr;

}

public int getPs() {

return ps;

}

public void setPs(int ps) {

this.ps = ps;

}

public List getBeanList() {

return beanList;

}

public void setBeanList(List beanList) {

this.beanList = beanList;

}

}

jsp页面

第${pb.pc }页/共${pb.tp }页

首页

上一页

10时,通过公式计算出begin和end --%>

[${i }]

[${i }]

下一页

尾页

servlet

package cn.itcast.cstm.web.servlet;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import cn.itcast.commons.CommonUtils;

import cn.itcast.cstm.domain.Customer;

import cn.itcast.cstm.domain.PageBean;

import cn.itcast.cstm.service.CustomerService;

import cn.itcast.servlet.BaseServlet;

public class CustomerServlet extends BaseServlet {

private CustomerService customerService = new CustomerService();

/**

* 获取pc

*

* @param request

* @return

*/

private int getPc(HttpServletRequest request) {

/*

* 1. 得到pc 如果pc参数不存在,说明pc=1 如果pc参数存在,需要转换成int类型即可

*/

String value = request.getParameter("pc");

if (value == null || value.trim().isEmpty()) {

return 1;

}

return Integer.parseInt(value);

}

//分页servlet

public String query(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// System.out.println(getUrl(request));

/*

* 0. 把条件封装到Customer对象中 1. 得到pc 2. 给定ps 3.

* 使用pc和ps,以及条件对象,调用service方法得到PageBean 4. 把PageBean保存到request域中 5.

* 转发到list.jsp

*/

// 获取查询条件

Customer criteria = CommonUtils.toBean(request.getParameterMap(), Customer.class);

/*

* 处理GET请求方式编码问题!

*/

criteria = encoding(criteria);

int pc = getPc(request);// 得到pc

int ps = 10;// 给定ps的值,第页10行记录

PageBean pb = customerService.query(criteria, pc, ps);

// 得到url,保存到pb中

pb.setUrl(getUrl(request));

request.setAttribute("pb", pb);

return "f:/list.jsp";

}

/**

* 处理四样

*

* @param criteria

* @return

* @throws UnsupportedEncodingException

*/

private Customer encoding(Customer criteria) throws UnsupportedEncodingException {

String cname = criteria.getCname();

String gender = criteria.getGender();

String cellphone = criteria.getCellphone();

String email = criteria.getEmail();

if (cname != null && !cname.trim().isEmpty()) {

cname = new String(cname.getBytes("ISO-8859-1"), "utf-8");

criteria.setCname(cname);

}

if (gender != null && !gender.trim().isEmpty()) {

gender = new String(gender.getBytes("ISO-8859-1"), "utf-8");

criteria.setGender(gender);

}

if (cellphone != null && !cellphone.trim().isEmpty()) {

cellphone = new String(cellphone.getBytes("ISO-8859-1"), "utf-8");

criteria.setCellphone(cellphone);

}

if (email != null && !email.trim().isEmpty()) {

email = new String(email.getBytes("ISO-8859-1"), "utf-8");

criteria.setEmail(email);

}

return criteria;

}

/**

* 截取url /项目名/Servlet路径?参数字符串

*

* @param request

* @return

*/

private String getUrl(HttpServletRequest request) {

String contextPath = request.getContextPath();// 获取项目名

String servletPath = request.getServletPath();// 获取servletPath,即/CustomerServlet

String queryString = request.getQueryString();// 获取问号之后的参数部份

// 判断参数部份中是否包含pc这个参数,如果包含,需要截取下去,不要这一部份。

if (queryString.contains("&pc=")) {

int index = queryString.lastIndexOf("&pc=");

queryString = queryString.substring(0, index);

}

return contextPath + servletPath + "?" + queryString;

}

}

以上内容是是小编给大家分享的JSP通用高大上分页代码(超管用),希望对大家有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值