Thursday, September 11, 2008

Writing Simple Taglibs

Writing tag libraries has mainly 3 parts

1 .The tld file defining the tag parameters

2. Java Class Containing the implementation of the Tag

3. Jsp Code Calling the Taglib

1.Tld for Tag

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
<info>OReilly Sample Tag library</info>

<tagclass>com.ivy.tags.Hello </tagclass>

This is a simple hello tag.




2.Java Class For the Tag

public class Hello extends BodyTagSupport {
private String name=null;
private int iterations=1;

* Getter/Setter for the attribute name as defined in the tld file
* for this tag - Name & iterations

//core content of the tag needs to be written here

public int doStartTag() throws JspTagException{
try {
JspWriter out = pageContext.getOut();
out.println("<table border=\"1\">");
if (name != null)
out.println("<tr><td> Hello " + name + " </td></tr>");
out.println("<tr><td> Hello World <td></tr>");
} catch (Exception ex) {
throw new JspTagException("All is not well in the world." + ex );
// Evaluate the body if there is one

//For the end part execution

public int doEndTag() throws JspTagException {
try {
JspWriter out = pageContext.getOut();
} catch (Exception ex){
throw new JspTagException("All is not well in the world." + ex);

public int doAfterBody() throws JspTagException {
if (iterations >= 1) {
BodyContent body = getBodyContent();
try {
JspWriter out = body.getEnclosingWriter();
body.clearBody(); // Clear for next evaluation
} catch(IOException ioe) {
throw new JspTagException("Error in Hello tag doAfterBody " + ioe);
} else {


Include the written tld <%@ taglib uri="./sample.tld" prefix="sample" %>

<sample:hello name="userName" iterations="5">
<tr><td><b>Have a nice day</b></td></tr>

No comments:

Free Domain Names @!