1 20 21 package com.jsptags.navigation.pager; 22 23 import javax.servlet.jsp.*; 24 import javax.servlet.jsp.tagext.*; 25 26 public abstract class PagerTagSupport extends TagSupport { 27 28 protected PagerTag pagerTag = null; 29 30 protected final void restoreAttribute(String name, Object oldValue) { 31 if (oldValue != null) 32 pageContext.setAttribute(name, oldValue); 33 else 34 pageContext.removeAttribute(name); 35 } 36 37 private final PagerTag findRequestPagerTag(String pagerId) { 38 Object obj = pageContext.getRequest().getAttribute(pagerId); 39 if (obj instanceof PagerTag) 40 return (PagerTag) obj; 41 return null; 42 } 43 44 public int doStartTag() throws JspException { 45 if (id != null) { 46 pagerTag = findRequestPagerTag(id); 47 if (pagerTag == null) 48 throw new JspTagException("pager tag with id of \"" + id + 49 "\" not found."); 50 } else { 51 pagerTag = (PagerTag) findAncestorWithClass(this, PagerTag.class); 52 if (pagerTag == null) { 53 pagerTag = findRequestPagerTag(PagerTag.DEFAULT_ID); 54 if (pagerTag == null) 55 throw new JspTagException("not nested within a pager tag" + 56 " and no pager tag found at request scope."); 57 } 58 } 59 60 return EVAL_BODY_INCLUDE; 61 } 62 63 public int doEndTag() throws JspException { 64 pagerTag = null; 65 return EVAL_PAGE; 66 } 67 68 public void release() { 69 pagerTag = null; 70 super.release(); 71 } 72 } 73 74 75 | Popular Tags |