Home >> Miscellaneous
How can I create a JSP Tag library?
In case of a HTML User Interface made of HTML code
and dynamic values from processing of components in
the business or application tier.
If not using Tag library, then one has to write
Java code in JSP or Servlet code, and this
way it is very hard to manage and changing layout
will be very difficult and error prone.
Tag library gives this advantage of placing
Java code in form of POJO (Plain Old Java Object)
classes and UI programmers with ways to write UI
using Tags, and this makes size of JSP file
quite small with flexibility of parameter passing
from JSP page to the TAG beans.
Different parts of the Tag libraries are as follows:
In order to be able to create or write a sample Tag
library, please take following steps as reference:
|
|  |
|
There are four major parts/items required for this sample
Tag library to work,
1. TLD file
2. POJO (Plain Old Java Object) that implements
javax.servlet.jsp.tagext.Tag
3. JSP file
4. Tag library supporting Web server
We shall be creating first three above items here, and the
web server I have used is TOMCAT.
Step 1.
Define your own tld file, name it as convenient.
(I have used JSP Tag Library 1.1)
Contents for thsi sample Tag library looks something
as follows:
----------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag
Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary__1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>DemoTags</shortname>
<tag>
<name>firsttag</name>
<tagclass>test.mytag.MyTag</tagclass>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
----------------------------------------------------
This TLD file contains information like the Tag name as "firsttag",
attribute name as "name" and whether this attribute is required
or optional etc.
One can create a file with extension ".tld" and place this under
WEB-INF folder, I did placed it under /WEB-INF/tlds/DemoTags.tld.
2. Now is the time to create test.mytag.MyTag POJO class that
contains logic for creation of the UI part of this sample MyTag.
Create a Java file that should implement javax.servlet.jsp.tagext.Tag.
as follows:
----------------------------------------------------
package test.mytag;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class MyTag implements Tag,Serializable
{
private PageContext pc=null;
private Tag parent = null;
private String name = null;
public void setName(String argName) {
name = argName;
}
public String getName()
{
return name;
}
public void setPageContext(PageContext p)
{
pc=p;
}
public void setParent(Tag t)
{
parent =t;
}
public Tag getParent()
{
return parent;
}
public int doStartTag() throws JspException
{
try{
pc.getOut().write("<table border=1>");
if(name != null)
pc.getOut().write("<tr><td>"+name+"</td></tr>");
pc.getOut().write("</table>");
}catch(IOException ex){
throw new JspTagException("An IOException occurred");
}
return SKIP_BODY;
}
public int doEndTag() throws JspException
{
return EVAL_PAGE;
}
public void release()
{
pc=null;
parent=null;
}
}
----------------------------------------------------
This Java file has to be copied under WEB-INF/classes
and then respective package folder.
In order to compile this MyTag code, one has to place
corresponding JSP Tag api Jar file, I found it under
<<TOMCAT_HOME_5.5>>/common/lib and a file "jsp-api.jar"
3.
By creating a jsp file and using the tag firsttag, as follows:
----------------------------------------------------
<html>
<body>
<%@ taglib uri="/WEB-INF/tlds/DemoTags.tld" prefix="mytag" %>
<mytag:firsttag name="xyz"/>
</body>
</html>
----------------------------------------------------
One can see the final output as a Table with a single cell as "xyz".
This is a very simple way of demonstrating how Tag library can be
used, one can explore many ways to create some complex UI,
depending on need.
If you like to share your comment/suggestions/feedback relating to this Page,
you can do so by droping us an email at
usingframeworks @ gmail . com
with the subject line mentioning URL for this Page (i.e,
/example-tag-library-web-application.php) or use this
LINK.
As per this website's privacy policy, we never disclose your email id,
though we shall post your comments/suggestions/feedback with
your name (optional) and date on this Page. If you don't want your
comments/suggestions/feedback to be shared in this Page, please
mention so in your email to us. Thank you very much.....
If anything missed out , please let me know at
techienjoy at yahoo . com
|
|
|
|
|
|
|
|
|
|
|
|
| Android ListView Example : |
Example on Android List View
explained with a very simple scenario
and article with appropriate screens
captured and shown.
|
|
|
|
|
|
|
|
|
|
|
|
| Google GWT Example : |
Example using GWT and some design patterns and various
ways of implementing this example.
|
|
| Android Gallery Example : |
Example on Android Gallery View
explained with a very simple scenario
and appropriate screens captured and shown.
|
|
|
|
|
|
|
| Android Examples : |
List of ANDROid examples
with source code and output
screens captured and shown.
|
|
|
|
|
| Android Sensors Example : |
Example on Android Sensors Listed and
explained with a very simple scenario
and article with appropriate screens
captured and shown.
|
|
|
|
|
| Android ListView Example : |
Example on Android ListView and
explained with a very simple scenario
and article with appropriate screens
captured and shown.
|
|
|
|
|
|
|
|
| Android Tab View Example : |
Example on Android Tab View
explained with a very simple scenario
and appropriate screens captured and shown.
|
|
|
|
|
|
|
|
|
|
|
| Android ListView Example : |
Example on Android ListView
explained with a very simple scenario
whereby showing folder and files with
structure and appropriate screens
captured and shown.
|
|
|
|