package com.nfwork.dbfound.web.ui; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspTagException; import javax.servlet.jsp.tagext.Tag; import javax.servlet.jsp.tagext.TagSupport; import com.nfwork.dbfound.util.LogUtil; import com.nfwork.dbfound.util.UUIDUtil; public class Div extends TagSupport { private static final long serialVersionUID = 1L; private String id; private String style = ""; public int doStartTag() throws JspTagException { if (id == null || "".equals(id)) { id = "DIV" + UUIDUtil.getRandomString(5); } style = "display:none;" + style; String div = "<div id='" + id + "_outdiv'></div>"; Tag t = findAncestorWithClass(this, Panel.class); if (t != null) { Panel parent = (Panel) t; parent.html += div; } try { pageContext.getOut().print( "<div id='" + id + "_div' style='" + style + "'>"); } catch (IOException e) { LogUtil.error(e.getMessage(), e); } return EVAL_BODY_INCLUDE; } public int doEndTag() throws JspException { try { pageContext.getOut().print("</div>"); String script = "<script type='text/javascript'>em = Ext.get('" + id + "_outdiv');if(em){var el = Ext.get('" + id + "_div');em.appendChild(el);document.getElementById('" + id + "_div').style.display='';}</script>"; Tag t = findAncestorWithClass(this, Panel.class); if (t != null) { Panel parent = (Panel) t; parent.content.append(script); } } catch (IOException e) { LogUtil.error(e.getMessage(), e); } reset(); //重置属性 return EVAL_PAGE; } public void reset() { id = null; style = ""; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getStyle() { return style; } public void setStyle(String style) { this.style = style; } }