InvoiceItem.java
package allaire.samples.invoice.taglib;
import java.io.IOException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
public class InvoiceItem extends TagSupport {
public int doStartTag() throws JspException, JspTagException {
int result = SKIP_BODY;
InvoiceIterator parent = (InvoiceIterator)
findAncestorWithClass( this, InvoiceIterator.class );
if ( parent == null ) {
String message =
"The <inv:getItem> tag must be inside an <inv:foreach> tag.";
throw new JspTagException( message );
}
String item = parent.getItem();
try {
pageContext.getOut().print( item );
} catch ( IOException exc ) {
exc.printStackTrace();
throw new JspException( exc.getMessage() );
}
return result;
}
}