Home » apache-tomcat-6.0.26-src » javax » servlet » jsp » tagext » [javadoc | source]

    1   /*
    2   * Licensed to the Apache Software Foundation (ASF) under one or more
    3   * contributor license agreements.  See the NOTICE file distributed with
    4   * this work for additional information regarding copyright ownership.
    5   * The ASF licenses this file to You under the Apache License, Version 2.0
    6   * (the "License"); you may not use this file except in compliance with
    7   * the License.  You may obtain a copy of the License at
    8   *
    9   *     http://www.apache.org/licenses/LICENSE-2.0
   10   *
   11   * Unless required by applicable law or agreed to in writing, software
   12   * distributed under the License is distributed on an "AS IS" BASIS,
   13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14   * See the License for the specific language governing permissions and
   15   * limitations under the License.
   16   */
   17    
   18   package javax.servlet.jsp.tagext;
   19   
   20   import java.io.IOException;
   21   import java.io.Writer;
   22   import javax.servlet.jsp;
   23   
   24   /**
   25    * Encapsulates a portion of JSP code in an object that 
   26    * can be invoked as many times as needed.  JSP Fragments are defined 
   27    * using JSP syntax as the body of a tag for an invocation to a SimpleTag 
   28    * handler, or as the body of a <jsp:attribute> standard action
   29    * specifying the value of an attribute that is declared as a fragment,
   30    * or to be of type JspFragment in the TLD.
   31    * <p>
   32    * The definition of the JSP fragment must only contain template 
   33    * text and JSP action elements.  In other words, it must not contain
   34    * scriptlets or scriptlet expressions.  At translation time, the 
   35    * container generates an implementation of the JspFragment abstract class
   36    * capable of executing the defined fragment.
   37    * <p>
   38    * A tag handler can invoke the fragment zero or more times, or 
   39    * pass it along to other tags, before returning.  To communicate values
   40    * to/from a JSP fragment, tag handlers store/retrieve values in 
   41    * the JspContext associated with the fragment.
   42    * <p>
   43    * Note that tag library developers and page authors should not generate
   44    * JspFragment implementations manually.
   45    * <p>
   46    * <i>Implementation Note</i>: It is not necessary to generate a 
   47    * separate class for each fragment.  One possible implementation is 
   48    * to generate a single helper class for each page that implements 
   49    * JspFragment. Upon construction, a discriminator can be passed to 
   50    * select which fragment that instance will execute.
   51    *
   52    * @since 2.0
   53    */
   54   public abstract class JspFragment {
   55   
   56       /**
   57        * Executes the fragment and directs all output to the given Writer,
   58        * or the JspWriter returned by the getOut() method of the JspContext
   59        * associated with the fragment if out is null.
   60        *
   61        * @param out The Writer to output the fragment to, or null if 
   62        *     output should be sent to JspContext.getOut().
   63        * @throws javax.servlet.jsp.JspException Thrown if an error occured
   64        *     while invoking this fragment.
   65        * @throws javax.servlet.jsp.SkipPageException Thrown if the page
   66        *     that (either directly or indirectly) invoked the tag handler that
   67        *     invoked this fragment is to cease evaluation.  The container
   68        *     must throw this exception if a Classic Tag Handler returned
   69        *     Tag.SKIP_PAGE or if a Simple Tag Handler threw SkipPageException.
   70        * @throws java.io.IOException If there was an error writing to the 
   71        *     stream.
   72        */
   73       public abstract void invoke( Writer out )
   74           throws JspException, IOException;
   75   
   76       /**
   77        * Returns the JspContext that is bound to this JspFragment.
   78        *
   79        * @return The JspContext used by this fragment at invocation time.
   80        */
   81       public abstract JspContext getJspContext();
   82   
   83   }

Home » apache-tomcat-6.0.26-src » javax » servlet » jsp » tagext » [javadoc | source]