1 16 17 package org.apache.taglibs.xtags.xpath; 18 19 import java.io.Writer ; 20 21 import javax.servlet.jsp.JspException ; 22 import javax.servlet.jsp.PageContext ; 23 import javax.servlet.jsp.tagext.TagSupport ; 24 25 import org.dom4j.io.HTMLWriter; 26 import org.dom4j.io.OutputFormat; 27 import org.dom4j.io.XMLWriter; 28 29 30 34 public class OutputTag extends TagSupport { 35 36 37 private XMLWriter xmlWriter; 38 39 40 private String method; 41 42 43 private String indent; 44 45 46 private String omitXmlDeclaration; 47 48 49 public OutputTag() { 50 } 51 52 53 public XMLWriter getXMLWriter() { 54 return xmlWriter; 55 } 56 57 public int doStartTag() throws JspException { 60 OutputFormat format = null; 61 if (indent != null) { 62 format = OutputFormat.createPrettyPrint(); 63 format.setIndent(indent); 64 } 65 else { 66 format = new OutputFormat(); 67 } 68 format.setOmitEncoding( asBoolean( omitXmlDeclaration ) ); 69 70 Writer out = pageContext.getOut(); 71 if ( method != null && method.equalsIgnoreCase( "html" ) ) { 72 xmlWriter = new HTMLWriter( out, format ); 73 } 74 else { 75 xmlWriter = new XMLWriter( out, format ); 76 } 77 return EVAL_BODY_INCLUDE; 78 } 79 80 public void release() { 81 super.release(); 82 xmlWriter = null; 83 indent = null; 84 omitXmlDeclaration = null; 85 method = null; 86 } 87 88 public void setIndent(String indent) { 91 this.indent = indent; 92 } 93 94 public void setOmitXmlDeclaration(String omitXmlDeclaration) { 95 this.omitXmlDeclaration = omitXmlDeclaration; 96 } 97 98 public void setMethod(String method) { 99 this.method = method; 100 } 101 102 103 protected boolean asBoolean( String text ) { 106 if ( text != null ) { 107 return indent.equalsIgnoreCase( "yes" ) || indent.equalsIgnoreCase( "true" ); 108 } 109 return false; 110 } 111 112 } 113 | Popular Tags |