package org.genedb.web.tags.misc;
import static javax.servlet.jsp.PageContext.APPLICATION_SCOPE;
import static javax.servlet.jsp.PageContext.PAGE_SCOPE;
import static javax.servlet.jsp.PageContext.REQUEST_SCOPE;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class DebugTag extends SimpleTagSupport {
@Override
public void doTag() throws JspException, IOException {
PageContext pc = (PageContext) getJspContext();
JspWriter out = getJspContext().getOut();
displayAttrsInScope(out, pc, "Application", APPLICATION_SCOPE);
//displayAttrsInScope(out, pc, SESSION_SCOPE);
displayAttrsInScope(out, pc, "Request", REQUEST_SCOPE);
displayAttrsInScope(out, pc, "Page", PAGE_SCOPE);
}
private void displayAttrsInScope(JspWriter out, PageContext pc, String scopeName, int scope) throws IOException {
StringBuilder ret = new StringBuilder();
ret.append("<h2>");
ret.append(scopeName+ " ("+scope+")");
ret.append("</h2>");
ret.append("<table border=\"1\">");
Enumeration<String> e = pc.getAttributeNamesInScope(scope);
while (e.hasMoreElements()) {
String key = e.nextElement();
toRow(ret, key, pc.getAttribute(key, scope));
}
ret.append("</table>");
out.write(ret.toString());
}
private void toRow(StringBuilder in, String key, Object o) {
in.append("<tr><td><b>");
in.append(key);
in.append("</b></td><td>");
in.append(o);
in.append("</td></tr>");
}
}