工具类之分页查询设计
Posted fubin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工具类之分页查询设计相关的知识,希望对你有一定的参考价值。
设置分页查询PageUtil需要用到配置两个工具类:ServletUtil和StringUtil当然这两个工具类不仅仅服务于PageUtil
1.分页查询设置pageSize和pageCurrent两个参数时需要使用ServletRequest接口的getParameter方法
Returns the value of a request parameter as a String, or null if the parameter does not exist. Request parameters are extra information sent with the request. For HTTP servlets, parameters are contained in the query string or posted form data.
You should only use this method when you are sure the parameter has only one value. If the parameter might have more than one value, use getParameterValues.
以字符串形式返回请求参数的值,如果参数不存在,则返回null。请求参数是与请求一起发送的额外信息。对于HTTP servlet,参数包含在查询字符串或提交的表单数据中。
只有当您确定参数只有一个值时,才应该使用此方法。如果参数可能有多个值,则使用getParameterValues。
public String getParameter(String name);
2.使用getParameter方法需要获取request请求
我在ServletUtil类中使用getRequest()方法
ServletUtil类:
package com.cy.pj.common.util;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class ServletUtil {
/*
* 获取request
* */ public static HttpServletRequest getRequest(){
return getRequestAttributes().getRequest();
}
/*
* 获取response
* */ public static HttpServletResponse getReponse(){
return getRequestAttributes().getResponse();
}
/*
* 获取session
* */ public static HttpSession getSession(){
return getRequest().getSession();
}
public static ServletRequestAttributes getRequestAttributes(){
RequestAttributes attributes=
RequestContextHolder.getRequestAttributes();
return (ServletRequestAttributes) attributes;
}
}
2.1web依赖中的类RequestContextHolder的getRequestAttributes()方法获取请求参数并强转为ServletRequestAttributes类型
Return the RequestAttributes currently bound to the thread.
Returns:
the RequestAttributes currently bound to the thread, or null if none bound
返回当前绑定到线程的RequestAttributes。
返回:当前绑定到线程的RequestAttributes,如果没有绑定则返回null
@Nullable
public static RequestAttributes getRequestAttributes() {
RequestAttributes attributes = requestAttributesHolder.get();
if (attributes == null) {
attributes = inheritableRequestAttributesHolder.get();
}
return attributes;
}
3.PageUtil类:
package com.cy.pj.common.util;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import javax.servlet.http.HttpServletRequest;
public class PageUtil {
public static <T>Page<T> startPage(){
HttpServletRequest request=
ServletUtil.getRequest();
//页面大小(每页最多显示多少条记录)
String pageSizeStr=request.getParameter("pageSize");
//当前页码值(要查第几页的数据包)
String pageCurrentStr=request.getParameter("pageCurrent");
System.out.println("pageSize="+pageSizeStr);
System.out.println("pageCurrent="+pageCurrentStr);
/*
* 在此位置调用pageHelper中的一个方法启动分页
* 在项目中去添加一个PageHelper依赖(后缀是starter)*/
Integer pageCurrent=
StringUtil.isEmpty(pageCurrentStr)?1:Integer.parseInt(pageCurrentStr);
Integer pageSize=
StringUtil.isEmpty(pageSizeStr)?10:Integer.parseInt(pageSizeStr);
return PageHelper.startPage( pageCurrent, pageSize);
}
}
4.使用StringUtil类的isEmpty(String str)方法来判断获取的字符串类型的请求参数是否为null或者空字符,然后将请求参数通过Integer的parseInt方法转换为Integer类型
StringUtil类:
package com.cy.pj.common.util;
public class StringUtil {
public static boolean isEmpty(String str){
return str==null||"".equals(str);
}
}
以上是关于工具类之分页查询设计的主要内容,如果未能解决你的问题,请参考以下文章