You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@hyperreal.org on 1999/11/20 07:14:13 UTC

cvs commit: jakarta-tomcat/src/examples/WEB-INF/classes/jsp/tags/examples ExampleTagBase.java FooTag.java FooTagExtraInfo.java LogTag.java ShowSource.java

costin      99/11/19 22:14:10

  Added:       src/examples/WEB-INF/classes/examples ExampleTagBase.java
                        FooTag.java FooTagExtraInfo.java LogTag.java
                        ShowSource.java
  Removed:     src/examples/WEB-INF/classes/jsp/tags/examples
                        ExampleTagBase.java FooTag.java
                        FooTagExtraInfo.java LogTag.java ShowSource.java
  Log:
  Moved examples in a directory==package name, so ant will
  not recompile them all the time.
  
  Revision  Changes    Path
  1.1                  jakarta-tomcat/src/examples/WEB-INF/classes/examples/ExampleTagBase.java
  
  Index: ExampleTagBase.java
  ===================================================================
  package examples;
  
  import javax.servlet.jsp.*;
  import javax.servlet.jsp.tagext.*;
  
  public abstract class ExampleTagBase implements Tag {
  
      public void setParent(Tag parent) {
          this.parent = parent;
      }
  
      public void setBodyContent(BodyContent bodyOut) {
          this.bodyOut = bodyOut;
      }
  
      public void setPageContext(PageContext pageContext) {
          this.pageContext = pageContext;
      }
  
      public Tag getParent() {
          return this.parent;
      }
      
      public int doStartTag() throws JspException {
          return SKIP_BODY;
      }
  
      public int doEndTag() throws JspException {
          return EVAL_PAGE;
      }
      
  
      // Default implementations for BodyTag methods as well
      // just in case a tag decides to implement BodyTag.
      public void doInitBody() throws JspException {
      }
  
      public int doAfterBody() throws JspException {
          return SKIP_BODY;
      }
  
      public void release() {
          bodyOut = null;
          pageContext = null;
          parent = null;
      }
      
      protected BodyContent bodyOut;
      protected PageContext pageContext;
      protected Tag parent;
  }
  
  
  
  1.1                  jakarta-tomcat/src/examples/WEB-INF/classes/examples/FooTag.java
  
  Index: FooTag.java
  ===================================================================
  package examples;
  
  import javax.servlet.jsp.*;
  import javax.servlet.jsp.tagext.*;
  import java.util.Hashtable;
  import java.io.Writer;
  import java.io.IOException;
  
  /**
   * Example1: the simplest tag
   * Collect attributes and call into some actions
   *
   * <foo att1="..." att2="...." att3="...." />
   */
  
  public class FooTag 
      extends ExampleTagBase 
      implements BodyTag 
  {
      private String atts[] = new String[3];
      int i = 0;
      
      private final void setAtt(int index, String value) {
          atts[index] = value;
      }
      
      public void setAtt1(String value) {
          setAtt(0, value);
      }
      
      public void setAtt2(String value) {
          setAtt(1, value);
      }
  
      public void setAtt3(String value) {
          setAtt(2, value);
      }
      
      /**
       * Process start tag
       *
       * @return EVAL_BODY_INCLUDE
       */
      public int doStartTag() throws JspException {
  	return EVAL_BODY_TAG;
      }
  
      public void doInitBody() throws JspException {
          pageContext.setAttribute("member", atts[i]);
          i++;
      }
      
      public int doAfterBody() throws JspException {
          try {
              if (i == 3) {
                  bodyOut.writeOut(bodyOut.getEnclosingWriter());
                  return SKIP_BODY;
              } else
                  pageContext.setAttribute("member", atts[i]);
              i++;
              return EVAL_BODY_TAG;
          } catch (IOException ex) {
              throw new JspTagException(ex.toString());
          }
      }
  }
  
  
  
  
  1.1                  jakarta-tomcat/src/examples/WEB-INF/classes/examples/FooTagExtraInfo.java
  
  Index: FooTagExtraInfo.java
  ===================================================================
  package examples;
  
  import javax.servlet.jsp.tagext.*;
  
  public class FooTagExtraInfo extends TagExtraInfo {
      public VariableInfo[] getVariableInfo(TagData data) {
          return new VariableInfo[] 
              {
                  new VariableInfo("member",
                                   "String",
                                   true,
                                   VariableInfo.NESTED)
              };
      }
  }
  
          
  
  
  
  1.1                  jakarta-tomcat/src/examples/WEB-INF/classes/examples/LogTag.java
  
  Index: LogTag.java
  ===================================================================
  package examples;
  
  
  import javax.servlet.jsp.*;
  import javax.servlet.jsp.tagext.*;
  
  import java.io.IOException;
  
  /**
   * Log the contents of the body. Could be used to handle errors etc. 
   */
  public class LogTag 
      extends ExampleTagBase
      implements BodyTag 
  {
      boolean toBrowser = false;
      
      public void setToBrowser(String value) {
          if (value == null)
              toBrowser = false;
          else if (value.equalsIgnoreCase("true"))
              toBrowser = true;
          else
              toBrowser = false;
      }
  
      public int doStartTag() throws JspException {
          return EVAL_BODY_TAG;
      }
      
      public int doAfterBody() throws JspException {
          try {
              String s = bodyOut.getString();
              System.err.println(s);
              if (toBrowser)
                  bodyOut.writeOut(bodyOut.getEnclosingWriter());
              return SKIP_BODY;
          } catch (IOException ex) {
              throw new JspTagException(ex.toString());
          }
      }
  }
  
      
          
      
  
  
  
  1.1                  jakarta-tomcat/src/examples/WEB-INF/classes/examples/ShowSource.java
  
  Index: ShowSource.java
  ===================================================================
  package examples;
  
  
  import javax.servlet.*;
  import javax.servlet.jsp.*;
  import javax.servlet.jsp.tagext.*;
  
  import java.io.*;
  
  /**
   * Display the sources of the JSP file.
   */
  public class ShowSource
      extends TagSupport
  {
      String jspFile;
      
      public void setJspFile(String jspFile) {
          this.jspFile = jspFile;
      }
  
      public int doEndTag() throws JspException {
          InputStream in
              = pageContext.getServletContext().getResourceAsStream(jspFile);
  
          if (in == null)
              throw new JspTagException("Unable to find JSP file: "+jspFile);
          InputStreamReader reader = new InputStreamReader(in);
          
          JspWriter out = pageContext.getOut();
  
          try {
              out.println("<body>");
              out.println("<pre>");
              for(int ch = in.read(); ch != -1; ch = in.read())
                  if (ch == '<')
                      out.print("&lt;");
                  else
                      out.print((char) ch);
              out.println("</pre>");
              out.println("</body>");
          } catch (IOException ex) {
              throw new JspTagException("IOException: "+ex.toString());
          }
          return super.doEndTag();
      }
  }