1 5 package org.jresearch.gossip.tags; 6 7 import java.util.Enumeration ; 8 9 import javax.servlet.http.HttpServletRequest ; 10 import javax.servlet.http.HttpServletResponse ; 11 import javax.servlet.jsp.JspException ; 12 import javax.servlet.jsp.JspWriter ; 13 import javax.servlet.jsp.tagext.TagSupport ; 14 15 import org.jresearch.gossip.IConst; 16 import org.jresearch.gossip.list.RecordsData; 17 18 23 public class BlockUrlTag extends TagSupport { 24 25 private int block; 26 27 private int increase; 28 29 37 public int doStartTag() throws JspException { 38 try { 39 HttpServletRequest req = (HttpServletRequest ) pageContext 40 .getRequest(); 41 HttpServletResponse response = (HttpServletResponse ) pageContext 42 .getResponse(); 43 Enumeration pnames = req.getParameterNames(); 44 StringBuffer url = new StringBuffer ((String ) req 45 .getAttribute(IConst.REQUEST.REQUEST_URI) 46 + "?"); 47 48 this.block = ((RecordsData) req 49 .getAttribute(IConst.REQUEST.RECORDS_DATA)).getCurrBlock(); 50 51 while (pnames.hasMoreElements()) { 52 String name = (String ) pnames.nextElement(); 53 54 if (req.getParameter(name) != null 55 && !req.getParameter(name).equals("")) { 56 url.append(name); 57 url.append("="); 58 59 if (name.equals("block")) { 60 url 61 .append(this.block 62 + (this.increase * ((RecordsData) req 63 .getAttribute(IConst.REQUEST.RECORDS_DATA)) 64 .getBlockSize())); 65 } else { 66 url.append(req.getParameter(name)); 67 } 68 69 if (pnames.hasMoreElements()) { 70 url.append("&"); 71 } 72 73 } 74 } 75 76 if (req.getParameter("block") == null) { 77 url.append("&block="); 78 url.append(this.block 79 + (this.increase * ((RecordsData) req 80 .getAttribute(IConst.REQUEST.RECORDS_DATA)) 81 .getBlockSize())); 82 } 83 84 JspWriter out = pageContext.getOut(); 85 out.print(response.encodeURL(url.toString())); 86 } catch (Exception ex) { 87 throw new JspException ("error in BlockUrlTag tag:", ex); 88 } 89 90 return (SKIP_BODY); 91 } 92 93 98 public int getBlock() { 99 return this.block; 100 } 101 102 107 public void setBlock(int i) { 108 this.block = i; 109 } 110 111 116 public int getIncrease() { 117 return this.increase; 118 } 119 120 125 public void setIncrease(int i) { 126 this.increase = (i > 0) ? 1 : (-1); 127 } 128 } | Popular Tags |