## de.ix.jspTutorial.taglib
Class ForEachTag

    java.lang.Object
      |
      +--javax.servlet.jsp.tagext.TagSupport
            |
            +--javax.servlet.jsp.tagext.BodyTagSupport
                  |
                  +--de.ix.jspTutorial.taglib.ForEachTag

public class ForEachTag
extends javax.servlet.jsp.tagext.BodyTagSupport

Iteration über eine Liste von Objekten mit der Ausgabe des Body's Beispiel der Verwendung:

     <%@ taglib uri="/ixtaglib" prefix="jsptut" %>
     <%@ page import="java.util.*" %>
     ...
       <% Vector theVector = new Vector() ;
         theVector.addElement("Hello" );
         theVector.addElement("World" );
      %>
      <jsptut:foreach item="element"  list="<%= theVector.elements() %>" >
      <%= element %>
      </jsptut:foreach>
     ...

Version:
  $Id:$
Author:
  Peter Rossbach (pr@webapp.de)
See Also:
  Serialized Form

Field Summary
`private int` `index` Index des nächsten Elements in einem Object Array
`private java.lang.String` `myItem` Key im PageContext
`private java.lang.Object` `myList` Objekt das auf eine Liste andere Objekt verweist Unterstütze typen sind Enumeration,Iteration,Object[],ResultSet
`private java.lang.reflect.Method` `myMethod` Speichern der Eval Method für schnellere Ausführung
`static java.lang.String` `vcid` Source-Version

Fields inherited from class javax.servlet.jsp.tagext.BodyTagSupport
`bodyContent`

Fields inherited from class javax.servlet.jsp.tagext.TagSupport
`id, pageContext, parent, values`

Constructor Summary
`ForEachTag()` Konstruktion eines leer Tag die eigentliche Initialisierng finde in doInifBodyTag statt.

Method Summary
`int` `doAfterBody()` Es wird die Evaluation des Body auf Basis des ersten Elements in der For Schleife gestartet.
`int` `doEndTag()` Ausgabe des aktuellen Body Content.
`void` `doInitBody()` Initialisierung des Bodys
`int` `doStartTag()` Starte Ausführung des ForEach tags.
`int` `eval()` Finde zu dem Objekttyp in dem Attribute `myList` die Eval Methode.
`int` `eval(java.util.Enumeration aEnum)` Auswahl des nächsten Elements der `Enumeration`.
`int` `eval(java.util.Iterator aIterator)` Auswahl des nächsten Elements der `Iterators`.
`int` `eval(java.lang.Object[] aArray)` Auswahl des nächsten Elements der `Enumeration`.
`int` `eval(java.sql.ResultSet aResultset)` Auswahl des nächsten Elements der `ResultSet`.
`java.lang.String` `getItem()` Hote Namen der Variablen.
`java.lang.Object` `getList()`
`void` `release()` Zurücksetzen aller notwendigen init Werte damit diese Instanz wiederverwertet werden kann.
`void` `setItem(java.lang.String aItem)` Setze Name der Variablen in der JSP.
`protected void` `setItemAttribute(java.lang.Object aObject)` Set Object to PageContext
`void` `setList(java.lang.Object obj)` setze Collection Objekt
`void` `setList(java.lang.Object[] aobj)` setze Collection Objekt

Methods inherited from class javax.servlet.jsp.tagext.BodyTagSupport
`getBodyContent, getPreviousOut, setBodyContent`

Methods inherited from class javax.servlet.jsp.tagext.TagSupport
`findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue`

Methods inherited from class java.lang.Object
`<clinit>, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

Field Detail

### vcid

    public static java.lang.String vcid

  Source-Version

### myItem

    private java.lang.String myItem

  Key im PageContext

### myList

    private java.lang.Object myList

  Objekt das auf eine Liste andere Objekt verweist Unterstütze typen sind Enumeration,Iteration,Object[],ResultSet

### index

    private int index

  Index des nächsten Elements in einem Object Array

### myMethod

    private java.lang.reflect.Method myMethod

  Speichern der Eval Method für schnellere Ausführung

Constructor Detail

### ForEachTag

    public ForEachTag()

  Konstruktion eines leer Tag die eigentliche Initialisierng finde in doInifBodyTag statt.

Method Detail

### doInitBody

    public void doInitBody()
                    throws javax.servlet.jsp.JspTagException

  Initialisierung des Bodys
  Overrides:
    doInitBody in class javax.servlet.jsp.tagext.BodyTagSupport

### doAfterBody

    public int doAfterBody()
                    throws javax.servlet.jsp.JspTagException

  Es wird die Evaluation des Body auf Basis des ersten Elements in der For Schleife gestartet.
  Overrides:
    doAfterBody in class javax.servlet.jsp.tagext.BodyTagSupport
  See Also:
    `doStartTag()`

### doEndTag

    public int doEndTag()
                 throws javax.servlet.jsp.JspTagException

  Ausgabe des aktuellen Body Content. Es werden alle Ressourcen nun wieder feigegeben
  Overrides:
    doEndTag in class javax.servlet.jsp.tagext.BodyTagSupport
  Throws:
    javax.servlet.jsp.JspTagException -

### eval

    public int eval(java.util.Enumeration aEnum)
             throws javax.servlet.jsp.JspTagException

  Auswahl des nächsten Elements der `Enumeration`. Falls es noch Element gibt wird das Element im Attribute `myItem` hintelegt und der Body des Tags wird zur Ausführung gebracht. Wenn kein Element mehr vorhanden wird die Ausgabe des Body`s gestoppt. Das Attribute `myItem` wird durch die Methode `doEndTag` aus dem Pagecontext gelöscht.
  Parameters:
    `aEnum` -
  Returns:
    EVAL_BODY_TAG mind. ein Element noch vorhanden) oder SKIP_BODY (kein Element mehr vorhanden)
  Throws:
    javax.servlet.jsp.JspTagException -

### eval

    public int eval(java.util.Iterator aIterator)
             throws javax.servlet.jsp.JspTagException

  Auswahl des nächsten Elements der `Iterators`. Falls es noch Element gibt wird das Element im Attribute `myItem` hintelegt und der Body des Tags wird zur Ausführung gebracht. Wenn kein Element mehr vorhanden wird die Ausgabe des Body`s gestoppt. Das Attribute `myItem` wird durch die Methode `doEndTag` aus dem Pagecontext gelöscht.
  Parameters:
    `aIterator` - Iterator einer Collection (Java 2 )
  Returns:
    EVAL_BODY_TAG mind. ein Element noch vorhanden) oder SKIP_BODY (kein Element mehr vorhanden)
  Throws:
    javax.servlet.jsp.JspTagException -

### eval

    public int eval(java.lang.Object[] aArray)
             throws javax.servlet.jsp.JspTagException

  Auswahl des nächsten Elements der `Enumeration`. Falls es noch Element gibt wird das Element im Attribute `myItem` hintelegt und der Body des Tags wird zur Ausführung gebracht. Wenn kein Element mehr vorhanden wird die Ausgabe des Body`s gestoppt. Das Attribute `myItem` wird durch die Methode `doEndTag` aus dem Pagecontext gelöscht.
  Parameters:
    `aArray` - Ein Arry von Objekten
  Returns:
    EVAL_BODY_TAG mind. ein Element noch vorhanden) oder SKIP_BODY (kein Element mehr vorhanden)
  Throws:
    javax.servlet.jsp.JspTagException -

### setItemAttribute

    protected void setItemAttribute(java.lang.Object aObject)

  Set Object to PageContext
  Parameters:
    `aObject` - new value

### eval

    public int eval(java.sql.ResultSet aResultset)
             throws javax.servlet.jsp.JspTagException

  Auswahl des nächsten Elements der `ResultSet`. Das nächste Element kann nun aus dem ResultSet gelesen werden.
  Parameters:
    `aResultset` - Ein JDBC `ResultSet`
  Returns:
    EVAL_BODY_TAG mind. ein Element noch vorhanden) oder SKIP_BODY (kein Element mehr vorhanden)
  Throws:
    javax.servlet.jsp.JspTagException -

### eval

    public int eval()
             throws javax.servlet.jsp.JspTagException

  Finde zu dem Objekttyp in dem Attribute `myList` die Eval Methode. Eine Subklasse kann einfach weitere evel(typ) realisieren um die bestehenden Typen zu erweitern.
  Returns:
    EVAL_BODY_TAG mind. ein Element noch vorhanden) oder SKIP_BODY (kein Element mehr vorhanden)
  Throws:
    javax.servlet.jsp.JspTagException -

### doStartTag

    public int doStartTag()
                   throws javax.servlet.jsp.JspTagException

  Starte Ausführung des ForEach tags. Es muß ein Objekt de.ix.jspTutorial.taglib vorliegen damit es zur Ausführung kommt.
  Overrides:
    doStartTag in class javax.servlet.jsp.tagext.BodyTagSupport
  Throws:
    javax.servlet.jsp.JspTagException -
  See Also:
    `eval()`

### release

    public void release()

  Zurücksetzen aller notwendigen init Werte damit diese Instanz wiederverwertet werden kann.
  Overrides:
    release in class javax.servlet.jsp.tagext.BodyTagSupport

### setList

    public void setList(java.lang.Object obj)

  setze Collection Objekt
  Parameters:
    `obj` - neue Liste

### setList

    public void setList(java.lang.Object[] aobj)

  setze Collection Objekt
  Parameters:
    `obj` - neue Liste als Array

### getList

    public java.lang.Object getList()

### setItem

    public void setItem(java.lang.String aItem)

  Setze Name der Variablen in der JSP.
  Parameters:
    `aItem` - Name der Variablen

### getItem

    public java.lang.String getItem()

  Hote Namen der Variablen.
  Returns:
    Name der JSP Variablen

~ Das iX JSP Tutorial III - © 2000 by Peter Roßbach ~