JSP Java

package com.rntsoft;
///Custom tag
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.tagext.TryCatchFinally;
/**
 * This tag generates a thumbnail image using HTML img tag, next to text
 * message. The user specifies the content of the message and the Heading level
 * (i.e.,
 * 

-
 * 

)
 */
public class LogoTag extends BodyTagSupport implements TryCatchFinally {
  private String heading = null;
  private String image = null;
  //stamp.gif, 42 x 54
  private String width = null;
  private String height = null;
  public int doStartTag() throws JspException {
    //this method assumes that attribute properties have been set.
    try {
      int h = new Integer(heading).intValue();
      if (!(h > 0 && h < 7))
        throw new JspException(
            "The 'heading' attribute value must between 1 and 6 inclusive.");
    } catch (Exception e) {
      throw new JspException(e.getMessage());
    }
    return EVAL_BODY_BUFFERED;
  }
  public int doEndTag() throws JspException {
    JspWriter out = pageContext.getOut();
    String imgDir = ((HttpServletRequest) pageContext.getRequest())
        .getContextPath()
        + "/images/";
    String message = getBodyContent().getString().trim();
    try {
      out.println(new StringBuffer("          image).append("\" width=\"").append(width).append(
          "\" height=\"").append(height).append("\" align=\"left\">")
          .append("").append(message)
          .append("
").toString());
    } catch (java.io.IOException io) {
    }
    return EVAL_PAGE;
  }
  public void doCatch(Throwable t) {
    try {
      pageContext.getOut().println(t.getMessage() + "");
    } catch (java.io.IOException io) {
    }
  }
  public void doFinally() {
    //do nothing here, since we don't have any resources open
    //like database connections
  }
  public void setHeading(String level) {
    this.heading = level;
  }
  public void setImage(String name) {
    this.image = name;
  }
  public void setWidth(String width) {
    this.width = width;
  }
  public void setHeight(String height) {
    this.height = height;
  }
  public void release() {
    heading = null;
    image = null;
    width = null;
    height = null;
  }
}
//
package com.rntsoft;
import java.io.IOException;
import javax.servlet.jsp.JspContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
 * This tag generates a thumbnail image using HTML img tag, next to text
 * message. The user specifies the content of the message and the Heading level
 * (i.e.,
 * 

-
 * 

)
 */
public class SimpleLogoTag extends SimpleTagSupport {
  private String heading = null;
  private String image = null;
  private String width = null;
  private String height = null;
  public void doTag() throws JspException, IOException {
    JspContext jspContext = getJspContext();
    //this method assumes that attribute properties have been set.
    try {
      int h = new Integer(heading).intValue();
      if (!(h > 0 && h < 7))
        throw new JspException(
            "The 'heading' attribute value must between 1 and 6 inclusive.");
    } catch (Exception e) {
      throw new JspException(e.getMessage());
    }
    JspWriter out = jspContext.getOut();
    String imgDir = (String) jspContext.findAttribute("imgDir");
    if (imgDir == null || "".equals(imgDir))
      throw new JspException(
          "No attribute provided specifying the application's image directory.");
    out.println(new StringBuffer("        .append(image).append("\" width=\"").append(width).append(
            "\" height=\"").append(height).append(
            "\" align=\"left\">").append("        .append(">").toString());
    getJspBody().invoke(null);
    out.println(new StringBuffer("")
        .toString());
  }
  public void setHeading(String level) {
    this.heading = level;
  }
  public void setImage(String name) {
    this.image = name;
  }
  public void setWidth(String width) {
    this.width = width;
  }
  public void setHeight(String height) {
    this.height = height;
  }
}
//logo.tag
<%@ tag body-content="scriptless" description="Writes the HTML code for inserting a logo." %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ attribute name="heading" required="true" rtexprvalue=
  "true" description="The heading level for the logo."%>
<%@ attribute name="image" required="true" rtexprvalue=
  "true" description="The image name for the logo."%>
<%@ attribute name="width" required="true" rtexprvalue=
  "true" description="The image width for the logo."%>
<%@ attribute name="height" required="true" rtexprvalue=
  "true" description="The image height for the logo."%>
 
  "${width}" height="${height}" align="left">

  

//logoTest.jsp
<%@ taglib uri="rntsoft.com.tags" prefix="cbck" %>



<% session.setAttribute("imgDir",(request.getContextPath() + "/images/")) %>
Thanks for visiting
Here's all the other stuff this page contains...


//myTag.tld

1.0
    2.0
    cbck
    rntsoft.com.tags
    Cookbook custom tags
  
  
  com.rntsoft.ReqListener
    
  

        logo
        com.rntsoft.LogoTag
        scriptless
        This tag writes a logo inside the JSP.
        
            heading
            true
            true
            The heading level for the logo; 1 through 6.
        

        
        
            image
        true
        true
        The image name for the logo.
        

    
     
            width
        true
        true
        The image width for the logo.
        

    
     
            height
        true
        true
        The image height for the logo.