前言
上一篇文章我们已经把分页功能实现了。
但是还存在一些问题,例如:
1)如果其他功能需要分页,则需要复制大量代码才能重用该功能
2)如何根据系统需要修改分页工具栏的显示风格
这一篇文章在原来的基础上进行封装分页标签解决刚刚提到的问题;
提示:以下是本篇文章正文内容,下面案例可供参考
一、封装分页标签
为了方便代码的复用,及可维护性,我们将分页功能封装了一个自定义标签(其实就是将原来写在页面中的代码,通过移入到自定义标签中去实现),开发自定义标签分成三步:
编写助手类
编写标签描述文件
在页面上引入标签库,并使用
1)编写助手类
import java.io.IOException;
import java.util.Map;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;
import com.zking.mymvc.util.PageBean;
public class PagingTag extends BodyTagSupport{
private PageBean pageBean;
public PageBean getPageBean() {
return pageBean;
}
public void setPageBean(PageBean pageBean) {
this.pageBean = pageBean;
}
@Override
public int doStartTag() throws JspException {
JspWriter out = this.pageContext.getOut();
try {
out.println(buildHtml());
return SKIP_BODY;
} catch (IOException e) {
throw new JspException("分页标签异常", e);
}
}
//生成Html内容
private String buildHtml() {
//构建分页页面元素
String pagingElement = "<div style=\"text-align: right; width:98%;\">\r\n" +
" 第" + pageBean.getPage() + "页 \r\n" +
" 共" + pageBean.getTotal() + "条记录 \r\n" +
" <a href=\"javascript: goPage(1);\">首页</a> \r\n" +
" <a href=\"javascript: goPage('" + pageBean.getPreviousPage() + "');\">上页</a> \r\n" +
" <a href=\"javascript: goPage(&#