JSP Java

///
   

  /rntsoft
  /WEB-INF/rntsoft.tld

// create File:rntsoft.tld in the /WEB-INF/
  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
   "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
    

  1.0
  1.2
  rntsoft Simple Tags
  
  
    bodyContentTag
    com.rntsoft.BodyContentTag
    JSP
    
      howMany
    

  


//compile the following code into WEB-INF\classes\com\rntsoft
package com.rntsoft;
import java.io.IOException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class BodyContentTag extends BodyTagSupport
{
  private int iterations, howMany;
  public void setHowMany(int i)
  {
    this.howMany = i;
  }
  public void setBodyContent(BodyContent bc)
  {
    super.setBodyContent(bc);
    System.out.println("BodyContent = '" + bc.getString() + "'");
  }
  
  public int doAfterBody()
  {
    try 
    {    
      BodyContent bodyContent = super.getBodyContent();
      String      bodyString  = bodyContent.getString();
      JspWriter   out         = bodyContent.getEnclosingWriter();
      if ( iterations % 2 == 0 ) 
        out.print(bodyString.toLowerCase());
      else
        out.print(bodyString.toUpperCase());
      iterations++;
      bodyContent.clear(); // empty buffer for next evaluation
    }
    catch (IOException e) 
    {
      System.out.println("Error in BodyContentTag.doAfterBody()" + e.getMessage());
      e.printStackTrace();
    } // end of catch
    int retValue = SKIP_BODY;
    
    if ( iterations < howMany ) 
      retValue = EVAL_BODY_AGAIN;
    
    return retValue;
  }
}
// start comcat and load the bodyContent.jsp in browser
<%@ taglib uri="/rntsoft" prefix="rntsoft" %>

  
    A custom tag: body content
  
  
    This page uses a custom tag manipulates its body content.
    Here is its output:
    

          
            
  1. rntsoft.com

  2.