1 28 29 package com.caucho.jstl.el; 30 31 import com.caucho.el.Expr; 32 import com.caucho.jsp.BodyContentImpl; 33 import com.caucho.jsp.PageContextImpl; 34 import com.caucho.log.Log; 35 36 import javax.el.ELContext; 37 import javax.servlet.jsp.JspException ; 38 import javax.servlet.jsp.JspWriter ; 39 import javax.servlet.jsp.tagext.BodyTagSupport ; 40 import java.util.logging.Level ; 41 import java.util.logging.Logger ; 42 43 public class CoreOutTag extends BodyTagSupport { 44 private static final Logger log = Log.open(CoreOutTag.class); 45 46 private Expr _value; 47 private Expr _escapeXml; 48 private Expr _defaultValue; 49 50 53 public void setValue(Expr value) 54 { 55 _value = value; 56 } 57 58 61 public void setEscapeXml(Expr value) 62 { 63 _escapeXml = value; 64 } 65 66 69 public void setDefault(Expr value) 70 { 71 _defaultValue = value; 72 } 73 74 77 public int doStartTag() 78 throws JspException 79 { 80 try { 81 PageContextImpl pageContext = (PageContextImpl) this.pageContext; 82 ELContext env = pageContext.getELContext(); 83 84 JspWriter out = pageContext.getOut(); 85 86 boolean doEscape = (_escapeXml == null || _escapeXml.evalBoolean(env)); 87 88 if (! _value.print(out, env, doEscape)) { 89 } 90 else if (_defaultValue != null) 91 _defaultValue.print(out, env, doEscape); 92 else 93 return EVAL_BODY_BUFFERED; 94 } catch (Exception e) { 95 log.log(Level.WARNING, e.toString(), e); 96 } 97 98 return SKIP_BODY; 99 } 100 101 public int doEndTag() throws JspException 102 { 103 try { 104 PageContextImpl pageContext = (PageContextImpl) this.pageContext; 105 ELContext env = pageContext.getELContext(); 106 107 JspWriter out = pageContext.getOut(); 108 109 BodyContentImpl body = (BodyContentImpl) getBodyContent(); 110 111 if (body != null) { 112 boolean doEscape = (_escapeXml == null || _escapeXml.evalBoolean(env)); 113 114 String s = body.getString().trim(); 115 116 if (doEscape) 117 Expr.toStreamEscaped(out, s); 118 else 119 out.print(s); 120 } 121 } catch (Exception e) { 122 } 123 124 return EVAL_PAGE; 125 } 126 } 127 | Popular Tags |