1 18 package org.apache.beehive.netui.tags.javascript; 19 20 import org.apache.beehive.netui.tags.AbstractSimpleTag; 21 import org.apache.beehive.netui.tags.rendering.WriteRenderAppender; 22 23 import javax.servlet.jsp.JspException ; 24 import javax.servlet.jsp.PageContext ; 25 import java.io.IOException ; 26 27 36 public class ScriptBlock extends AbstractSimpleTag 37 { 38 private ScriptPlacement _placement = ScriptPlacement.PLACE_INLINE; 39 40 43 public String getTagName() 44 { 45 return "Content"; 46 } 47 48 58 public void setPlacement(String placement) 59 { 60 if (placement.equals("after")) 61 _placement = ScriptPlacement.PLACE_AFTER; 62 else if (placement.equals("before")) 63 _placement = ScriptPlacement.PLACE_BEFORE; 64 else 65 _placement = ScriptPlacement.PLACE_INLINE; 66 } 67 68 72 public void doTag() 73 throws JspException , IOException 74 { 75 if (hasErrors()) { 77 reportErrors(); 78 return; 79 } 80 81 PageContext pageContext = getPageContext(); 82 WriteRenderAppender writer = new WriteRenderAppender(pageContext); 83 String script = getBufferBody(false); 84 if (script == null) 85 return; 86 87 if (script.length() > 0 && script.charAt(script.length() -1) != '\n') { 89 script = script + "\n"; 90 } 91 92 IScriptReporter sr = getScriptReporter(); 93 94 if (_placement == ScriptPlacement.PLACE_INLINE || sr == null) { 96 ScriptRequestState.writeScriptBlock(pageContext.getRequest(), writer, script); 97 return; 98 } 99 100 sr.addScriptFunction(_placement, script); 101 } 102 } 103 | Popular Tags |