code: public int doStartTag()
              throws JspException {
          ServletRequest req = pageContext.getRequest();
          HashMap atts = (HashMap) req.getAttribute(TEMPLATE_ATTRIBUTES);
          try {
              if (atts != null) {
                  String val = (String) atts.get(_name);
                  if (val != null) {
                      Writer out = pageContext.getOut();
                      out.write(val);
                  }
                  else {
                      Writer out = pageContext.getOut();
                      if (_defaultValue != null)
                          out.write(_defaultValue);
                      else
                          out.write("");
                  }
              }
              else {
                  Writer out = pageContext.getOut();
                  if (_defaultValue != null)
                      out.write(_defaultValue);
                  else
                      out.write("");
              }
          }
          catch (IOException e) {
              localRelease();
              JspException jspException = new JspException("Caught IO Exception:" + e.getMessage(),e);
              // todo: future cleanup
              // The 2.5 Servlet api will set the initCause in the Throwable superclass during construction,
              // this will cause an IllegalStateException on the following call.
              if (jspException.getCause() == null) {
                  jspException.initCause(e);
              }
              throw jspException;
          }
          localRelease();
          return EVAL_PAGE;
      }
docs: Renders the content of the attribute.
  @return EVAL_PAGE to continue evaluation of the page.
  @throws JspException If there is any failure in the tag.