1 20 21 package com.jsptags.navigation.pager; 22 23 import javax.servlet.jsp.*; 24 import javax.servlet.jsp.tagext.*; 25 import java.io.IOException ; 26 27 public final class PagesTag extends PageTagSupport implements BodyTag { 28 29 private BodyContent bodyContent = null; 30 private int page = 0; 31 private int lastPage = 0; 32 33 public void setBodyContent(BodyContent bc) { 34 bodyContent = bc; 35 } 36 37 public int doStartTag() throws JspException { 38 super.doStartTag(); 39 40 int firstPage = pagerTag.getFirstIndexPage(); 41 lastPage = pagerTag.getLastIndexPage(firstPage); 42 page = firstPage; 43 44 return (page <= lastPage ? EVAL_BODY_TAG : SKIP_BODY); 45 } 46 47 public void doInitBody() throws JspException { 48 setPageAttributes(page); 49 page++; 50 } 51 52 public int doAfterBody() throws JspException { 53 if (page <= lastPage) { 54 setPageAttributes(page); 55 page++; 56 return EVAL_BODY_TAG; 57 } else { 58 try { 59 bodyContent.writeOut(bodyContent.getEnclosingWriter()); 60 return SKIP_BODY; 61 } catch (IOException e) { 62 throw new JspTagException(e.toString()); 63 } 64 } 65 } 66 67 public int doEndTag() throws JspException { 68 69 bodyContent = null; 70 71 super.doEndTag(); 72 73 return EVAL_PAGE; 74 } 75 76 public void release() { 77 bodyContent = null; 78 super.release(); 79 } 80 } 81 82 83 | Popular Tags |