1 16 package com.blandware.atleap.webapp.taglib.core.grid; 17 18 import com.blandware.atleap.webapp.taglib.core.BaseHandlerTag; 19 import com.blandware.atleap.webapp.util.core.RequestUtil; 20 import org.apache.commons.logging.Log; 21 import org.apache.commons.logging.LogFactory; 22 import org.apache.struts.taglib.TagUtils; 23 24 import javax.servlet.jsp.JspException ; 25 import javax.servlet.jsp.JspTagException ; 26 import javax.servlet.jsp.PageContext ; 27 import java.io.IOException ; 28 import java.io.StringWriter ; 29 import java.util.Map ; 30 31 32 48 public class LastPageTag extends BaseHandlerTag { 49 protected transient final Log log = LogFactory.getLog(LastPageTag.class); 50 51 57 public void doTag() throws JspException , IOException { 58 59 PageContext pageContext = (PageContext ) getJspContext(); 60 61 PagerTag parentPagerTag = (PagerTag) findAncestorWithClass(this, PagerTag.class); 63 64 if ( parentPagerTag == null ) { 65 JspTagException e = new JspTagException ("Parent tag is invalid! This tag is only valid when nested within 'pager' tag"); 66 throw e; 67 } 68 69 GridTag parentGridTag = (GridTag) findAncestorWithClass(this, GridTag.class); 70 71 if ( log.isDebugEnabled() ) { 72 log.debug("Current page number: " + parentGridTag.getCurrentPageNumber()); 73 log.debug("Last page number: " + parentPagerTag.getLastPageNumber()); 74 } 75 76 78 if ( parentGridTag.getCurrentPageNumber().intValue() < parentPagerTag.getLastPageNumber().intValue() ) { 79 80 String pageUrl = parentGridTag.getPageUrl(); 81 82 Map parameterMap = RequestUtil.prepareParameterMap(parentGridTag.getParameterMap()); 83 parameterMap.put("pageNumber", parentPagerTag.getLastPageNumber().toString()); 84 parameterMap.put("gridName", parentGridTag.getName()); 85 pageUrl += "?" + RequestUtil.createQueryStringFromMap(parameterMap, "&"); 86 87 StringWriter sw = new StringWriter (); 88 StringBuffer sb = sw.getBuffer(); 89 sb.append("<a HREF=\"").append(pageUrl).append("\"").append(prepareAttributes()).append(">"); 90 getJspBody().invoke(sw); 91 sb.append("</a>"); 92 93 TagUtils.getInstance().write(pageContext, sw.toString()); 94 } 95 } 96 97 } 98 | Popular Tags |