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.struts.taglib.TagUtils; 21 22 import javax.servlet.jsp.JspException ; 23 import javax.servlet.jsp.JspTagException ; 24 import javax.servlet.jsp.PageContext ; 25 import java.io.IOException ; 26 import java.io.StringWriter ; 27 import java.util.Map ; 28 29 30 47 public class NextPageTag extends BaseHandlerTag { 48 49 55 public void doTag() throws JspException , IOException { 56 57 PageContext pageContext = (PageContext ) getJspContext(); 58 59 PagerTag parentPagerTag = (PagerTag) findAncestorWithClass(this, PagerTag.class); 61 62 if ( parentPagerTag == null ) { 63 JspTagException e = new JspTagException ("Parent tag is invalid! This tag is only valid when nested within 'pager' tag"); 64 throw e; 65 } 66 67 GridTag parentGridTag = (GridTag) findAncestorWithClass(this, GridTag.class); 68 69 int currentPageNumber = parentGridTag.getCurrentPageNumber().intValue(); 70 int lastPageNumber = parentPagerTag.getLastPageNumber().intValue(); 71 72 74 if ( currentPageNumber < lastPageNumber ) { 75 76 String pageUrl = parentGridTag.getPageUrl(); 77 78 Map parameterMap = RequestUtil.prepareParameterMap(parentGridTag.getParameterMap()); 79 parameterMap.put("pageNumber", String.valueOf(currentPageNumber + 1)); 80 parameterMap.put("gridName", parentGridTag.getName()); 81 pageUrl += "?" + RequestUtil.createQueryStringFromMap(parameterMap, "&"); 82 83 StringWriter sw = new StringWriter (); 84 StringBuffer sb = sw.getBuffer(); 85 sb.append("<a HREF=\"").append(pageUrl).append("\"").append(prepareAttributes()).append(">"); 86 getJspBody().invoke(sw); 87 sb.append("</a>"); 88 TagUtils.getInstance().write(pageContext, sw.toString()); 89 } 90 } 91 92 } 93 | Popular Tags |