jumptooptionstag.java

来自「jGossip是一个简单而功能强大的Java论坛软件(消息板)」· Java 代码 · 共 124 行

JAVA
124
字号
/*
 * Created on 09.05.2003
 *
 */
package org.jresearch.gossip.tags;

import java.util.ArrayList;
import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jresearch.gossip.IConst;
import org.jresearch.gossip.beans.forum.Forum;
import org.jresearch.gossip.beans.forum.Group;
import org.jresearch.gossip.util.HtmlCodec;


/**
 * DOCUMENT ME!
 *
 * @author Bel
 */
public class JumpToOptionsTag extends TagSupport {

	/**
	 * Logger instance.
	 */
	private static final Log LOG = LogFactory.getLog(JumpToOptionsTag.class);

    private boolean addUrl = true;

    /**
     * DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws JspException DOCUMENT ME!
     */
    public int doStartTag() throws JspException {
        try {
            JspWriter out = pageContext.getOut();
            HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();
            HttpServletResponse response = (HttpServletResponse) pageContext.getResponse();
            HttpSession session = req.getSession();
            ArrayList groups = (ArrayList) session.getAttribute(IConst.SESSION.GROUPS_KEY);
            Iterator it = groups.iterator();
            int fid = -1;

            if (req.getParameter("fid") != null) {
                try {
                    fid = Integer.parseInt(req.getParameter("fid"));
                } catch (NumberFormatException ex) {
                }
            }

            while (it.hasNext()) {
                out.println("<option value=\"\">" +
                    IConst.JSP.OPTIONS_SEPERATOR + "</option>");

                ArrayList forums = ((Group) it.next()).getForums();
                Iterator itr = forums.iterator();

                while (itr.hasNext()) {
                    Forum forum = (Forum) itr.next();
                    StringBuffer option = new StringBuffer("<option value=\"");

                    if (this.addUrl) {
                        StringBuffer href = new StringBuffer(
                                "ShowForum.do?fid=");
                        href.append(forum.getForumid());
                        option.append(response.encodeURL(href.toString()));
                    } else {
                        option.append(forum.getForumid());
                    }

                    option.append("\" title=\"");
                    option.append(HtmlCodec.encode(forum.getTitle()));
                    option.append("\" ");
                    option.append((forum.getForumid() == fid) ? "selected" : "");
                    option.append(" >");
                    option.append(HtmlCodec.encode(forum.getTitle()));
                    option.append("</option>");
                    out.println(option.toString());
                }
            }
        } catch (Exception ex) {
			if(LOG.isErrorEnabled())
			{
				LOG.error("JumpToOptionsTag::", ex);
			}
            throw new JspException("error in JumpToOptionsTag tag:", ex);
        }

        return (SKIP_BODY);
    }

    /**
     * DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws JspException DOCUMENT ME!
     */
    public int doEndTag() throws JspException {
        return (EVAL_PAGE);
    }

    /**
     * DOCUMENT ME!
     *
     * @param b
     */
    public void setAddUrl(boolean b) {
        addUrl = b;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?