JSP TAG LIBRARIES
JSP?s
offer a unique feature of ?Tag Libraries?. Simply put, these are
custom defined JSP tags. They are basically meant for componentizing
presentation level logic. They are very similar to beans except the fact
that Beans are used to separate Business logic.
Every
tag is mapped to a particular class file which is executed whenever the
tag is encountered in an JSP file.
The
general syntax :
<%@
taglib uri=? - - - - - ? prefix = ?
- - - ? %>
The
parent of the tag is the JSP tag within which it is nested, if there
isn?t one, its set to null.
There
are two things to remember while using TAGLIB?s :
The
Class file should be created and it should be deployed in the Servlet
folder of the web server. The class file should implement the Tag and
BodyTag interfaces.
The
mapping of a particular tag to a particular class file should be done in
the taglib.tld file.
The
tag is then ready to be used in the JSP file !!
The
taglib file forms the central description for the tag library :
This
file is an XML document that defines the tag?s operation.
It
maps the tag name on the page to
the implementing class.
It
defines inputs to the class.
It
references the helper class that provides details of any output
variables set by the tag class.
This
Tag and Bodytag have some methods, these all methods are callback
methods.
Tag
methods: doStartTag()
doEndTag()
Body
Tag : doAfterBody()
Let?s
have small example to display Hello World :
1.
First
we write simple jsp file
<% @ taglib uri=?/taglib.tld? prefix=?nt? %> <html> <body>
<nt:Helloworld /> </body> </html> |
2.
It
will look for file specified in uri attribute,that file will be
<?xml version=?1.0? encoding=?ISO-8859-1?
?> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion> <shortname>nt</shortname>
<tag>
<name>Hello World</name>
<tagclass>mytags.HelloWorld</tagclass>
<body context>empty</body context>
</tag> </taglib>
|
Package
mytags; Import
javax.servlet.jsp.*; Public
class Helloworld implements Tag
private PageContext
pagecontext;
public int doStartTag() throws JSPException
public int doEndTag () throws JSPException public
void setPageContext(pageContext p) public
void setParent(Tag t) public
void getParent() |
Flow
of programme:
Here
in first .jsp file we are writing tag.But name and properties of this
tag we are writing in .tld file. And whatever task that tag is going to
perform is written in .class file which has been called by .tld file.
So by using taglib we can create our own defined tags.