// Programm 6-23f: BSP_ROOT/meinewebapp/WEB-INF/classes/meinetags/SqlDirektAusgabeTag.java
package meinetags;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.sql.*;
public class SqlDirektAusgabeTag extends BodyTagSupport {
  String ident, name; JspWriter out; ResultSet r; 
  public void setIdent(String ident) { this.ident = ident; }
  public void setName(String name) { this.name = name; }
  public int doStartTag() throws JspException {
    try {
      r = (ResultSet) pageContext.findAttribute(name);
      out = pageContext.getOut();
      if (r.next()) {
        pageContext.setAttribute(ident, r);
        return EVAL_BODY_AGAIN;
      }
      else
        return SKIP_BODY;
    }
    catch (Exception ex) { throw new JspTagException("Fehler " + ex); }
  }
  public int doAfterBody() throws JspException {
    try {
      BodyContent body = getBodyContent();
      body.writeOut(getPreviousOut());
      body.clearBody();
      return r.next() ? EVAL_BODY_AGAIN : SKIP_BODY;
   }
    catch (Exception ex) { throw new JspTagException("Fehler " + ex); }
  }
  public int doEndTag() throws JspException {
    try {
      r.close();
    }
    catch (Exception ex) { throw new JspTagException("Fehler " + ex); }
    return EVAL_PAGE;
  }
}