JSP Tags vs. JavaBeans


What is difference between custom JSP tags and JavaBeans?



Custom JSP tag is a tag you defined. You define how a tag, its attributes and its body are interpreted, and then group your tags into collections called tag libraries that can be used in any number of JSP files. To use custom JSP tags, you need to define three separate components:

  • The tag handler class that defines the tag's behavior
  • The tag library descriptor file that maps the XML element names to the tag implementations
  • The JSP file that uses the tag library

When the first two components are done, you can use the tag by using taglib directive: <%@ taglib uri="xxx.tld" prefix="..." %>

Then you are ready to use the tags you defined. Let's say the tag prefix is test: <test:tag1>MyJSPTag</test:tag1> or <test:tag1 />

JavaBeans are Java utility classes you defined. Beans have a standard format for Java classes. You use tags: <jsp:useBean id="identifier" class="packageName.className"/>

To set a new value to a bean property: <jsp:setProperty name="identifier" property="classField" value="someValue" />

To get the existing value of bean property: <jsp:getProperty name="identifier" property="classField" />

Custom tags and beans accomplish the same goals -- encapsulating complex behavior into simple and accessible forms. There are several differences:

  • Custom tags can manipulate JSP content; beans cannot.
  • Complex operations can be reduced to a significantly simpler form with custom tags than with beans.
  • Custom tags require quite a bit more work to set up than do beans.
  • Custom tags usually define relatively self-contained behavior, whereas beans are often defined in one servlet and used in a different servlet or JSP page.
  • Custom tags are available only in JSP 1.1 and later, but beans can be used in all JSP 1.x versions.

2007-04-03, 7440👍, 0💬