Pager-taglib在项目中的使用 (二)

2014-11-24 10:53:18 · 作者: · 浏览: 1
chain.doFilter(request, response);
}finally{
//清空ThreadLocal中的值,避免类的溢出.
SystemContext.removeOffset();
SystemContext.removePagesize();
}

}

protected int getOffset(HttpServletRequest request){
int offset = 0;
try {
offset = Integer.parseInt(request.getParameter("pager.offset"));
} catch (NumberFormatException ignore) {
}
return offset;
}

protected int getPagesize(HttpServletRequest request){
return 10;
}

public void init(FilterConfig arg0) throws ServletException {
}

}

package com.tgb.oa.web;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import com.tgb.oa.SystemContext;
/**
*
* @oa_02 过滤器,获取相关分页数据.
* @author jnqqls
* @group TGB
* @version 1.0
* @comments
*/
public class PagerFilter implements Filter {

public void destroy() {
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

HttpServletRequest httpRequest = (HttpServletRequest)request;
SystemContext.setOffset(getOffset(httpRequest));
SystemContext.setPagesize(getPagesize(httpRequest));

try{
chain.doFilter(request, response);
}finally{
//清空ThreadLocal中的值,避免类的溢出.
SystemContext.removeOffset();
SystemContext.removePagesize();
}

}

protected int getOffset(HttpServletRequest request){
int offset = 0;
try {
offset = Integer.parseInt(request.getParameter("pager.offset"));
} catch (NumberFormatException ignore) {
}
return offset;
}

protected int getPagesize(HttpServletRequest request){
return 10;
}

public void init(FilterConfig arg0) throws ServletException {
}

}


3配置filter在WEB.XML文件中

代码如下:


[html]


PagerFilter
com.tgb.oa.web.PagerFilter



PagerFilter
/*




PagerFilter
com.tgb.oa.web.PagerFilter



PagerFilter
/*


4建立抽象类,将分页功能抽象成一个方案,可以在更多的场合下进行运用.

代码如下:


[java]
package com.tgb.oa.manager.impl;
import java.util.List;
import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.tgb.oa.PagerModel;
import com.tgb.oa.SystemContext;
import com.tgb.oa.manager.SystemException;

/**
*
* 抽象分页查询.
* @author jnqqls
* @group TGB
* @version 1.0
* @comments
*/
public class AbstractManager extends HibernateDaoSupport {


public PagerModel searchPaginated(String hql){
return searchPaginated(hql,null,SystemContext.getOffset(),SystemContext.getPagesize());
}

public Pag