1 5 package org.jresearch.gossip.tags; 6 7 import java.util.ArrayList ; 8 import java.util.Iterator ; 9 10 import javax.servlet.http.HttpServletRequest ; 11 import javax.servlet.http.HttpServletResponse ; 12 import javax.servlet.http.HttpSession ; 13 import javax.servlet.jsp.JspException ; 14 import javax.servlet.jsp.JspWriter ; 15 import javax.servlet.jsp.tagext.TagSupport ; 16 17 import org.apache.log.Logger; 18 import org.jresearch.gossip.IConst; 19 import org.jresearch.gossip.beans.forum.Forum; 20 import org.jresearch.gossip.beans.forum.Group; 21 import org.jresearch.gossip.exception.SystemException; 22 import org.jresearch.gossip.log.avalon.JGossipLog; 23 import org.jresearch.gossip.util.HtmlCodec; 24 25 30 public class JumpToOptionsTag extends TagSupport { 31 32 35 private Logger log; 36 37 private boolean addUrl = true; 38 39 42 public JumpToOptionsTag() { 43 super(); 44 try { 45 log = JGossipLog.getInstance().getAppLogger(); 46 } catch (SystemException e) { 47 } 48 } 49 50 58 public int doStartTag() throws JspException { 59 try { 60 JspWriter out = pageContext.getOut(); 61 HttpServletRequest req = (HttpServletRequest ) pageContext 62 .getRequest(); 63 HttpServletResponse response = (HttpServletResponse ) pageContext 64 .getResponse(); 65 HttpSession session = req.getSession(); 66 ArrayList groups = (ArrayList ) session 67 .getAttribute(IConst.SESSION.GROUPS_KEY); 68 Iterator it = groups.iterator(); 69 int fid = -1; 70 71 if (req.getParameter("fid") != null) { 72 try { 73 fid = Integer.parseInt(req.getParameter("fid")); 74 } catch (NumberFormatException ex) { 75 } 76 } 77 78 while (it.hasNext()) { 79 out.println("<option value=\"\">" 80 + IConst.JSP.OPTIONS_SEPERATOR + "</option>"); 81 82 ArrayList forums = ((Group) it.next()).getForums(); 83 Iterator itr = forums.iterator(); 84 85 while (itr.hasNext()) { 86 Forum forum = (Forum) itr.next(); 87 StringBuffer option = new StringBuffer ("<option value=\""); 88 89 if (this.addUrl) { 90 StringBuffer href = new StringBuffer ( 91 "ShowForum.do?fid="); 92 href.append(forum.getForumid()); 93 option.append(response.encodeURL(href.toString())); 94 } else { 95 option.append(forum.getForumid()); 96 } 97 98 option.append("\" title=\""); 99 option.append(HtmlCodec.encode(forum.getTitle())); 100 option.append("\" "); 101 option 102 .append((forum.getForumid() == fid) ? "selected" 103 : ""); 104 option.append(" >"); 105 option.append(HtmlCodec.encode(forum.getTitle())); 106 option.append("</option>"); 107 out.println(option.toString()); 108 } 109 } 110 } catch (Exception ex) { 111 if (log.isErrorEnabled()) { 112 log.error("JumpToOptionsTag::", ex); 113 } 114 throw new JspException ("error in JumpToOptionsTag tag:", ex); 115 } 116 117 return (SKIP_BODY); 118 } 119 120 128 public int doEndTag() throws JspException { 129 return (EVAL_PAGE); 130 } 131 132 137 public void setAddUrl(boolean b) { 138 addUrl = b; 139 } 140 } 141 | Popular Tags |