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 JumpTagSupport extends PageTagSupport { 27 28 static final String 29 CURRENT = "current", 30 INDEXED = "indexed"; 31 32 private String unless = null; 33 34 public final void setUnless(String value) throws JspException { 35 if (!(value == null || CURRENT.equals(value) || INDEXED.equals(value))) 36 { 37 throw new JspTagException("value for attribute \"unless\" " + 38 "must be either \"current\" or \"indexed\"."); 39 } 40 unless = value; 41 } 42 43 public final String getUnless() { 44 return unless; 45 } 46 47 public int doStartTag() throws JspException { 48 super.doStartTag(); 49 50 int jumpPage = getJumpPage(); 51 52 if (CURRENT.equals(unless)) { 53 if (jumpPage == pagerTag.getPageNumber()) 54 return SKIP_BODY; 55 } else if (INDEXED.equals(unless)) { 56 int firstPage = pagerTag.getFirstIndexPage(); 57 int lastPage = pagerTag.getLastIndexPage(firstPage); 58 59 if (jumpPage >= firstPage && jumpPage <= lastPage) 60 return SKIP_BODY; 61 } 62 63 setPageAttributes(jumpPage); 64 65 return EVAL_BODY_INCLUDE; 66 } 67 68 public void release() { 69 unless = null; 70 super.release(); 71 } 72 73 protected abstract int getJumpPage(); 74 } 75 76 77 | Popular Tags |