The JavaTM Web Services Tutorial
Home
TOC
Index
PREV TOP NEXT
Divider

Extending the JSP Language

You can perform a wide variety of dynamic processing tasks, including accessing databases, using enterprise services such as e-mail and directories, and flow control, with JavaBeans components in conjunction with scriptlets. One of the drawbacks of scriptlets, however, is that they tend to make JSP pages more difficult to maintain. Alternatively, JSP technology provides a mechanism, called custom tags, that allows you to encapsulate dynamic functionality in objects that are accessed through extensions to the JSP language. Custom tags bring the benefits of another level of componentization to JSP pages.

For example, recall the scriptlet used to loop through and display the contents of the Duke's Bookstore shopping cart:

<% 
  Iterator i = cart.getItems().iterator();
  while (i.hasNext()) {
    ShoppingCartItem item =
      (ShoppingCartItem)i.next();
    ...
%>
    <tr>
    <td align="right" bgcolor="#ffffff"> 
    <%=item.getQuantity()%>
    </td>
    ...
<% 
  } 
%>
 

An iterate custom tag eliminates the code logic and manages the scripting variable item that references elements in the shopping cart:

<logic:iterate id="item"
  collection="<%=cart.getItems()%>">
  <tr> 
  <td align="right" bgcolor="#ffffff"> 
  <%=item.getQuantity()%>
  </td> 
  ...
</logic:iterate>
 

Custom tags are packaged and distributed in a unit called a tag library. The syntax of custom tags is the same as that used for the JSP elements, namely <prefix:tag>, for custom tags, however, prefix is defined by the user of the tag library, and tag is defined by the tag developer. Custom Tags in JSP Pages explains how to use and develop custom tags.

Divider
Home
TOC
Index
PREV TOP NEXT
Divider

This tutorial contains information on the 1.0 version of the Java Web Services Developer Pack.

All of the material in The Java Web Services Tutorial is copyright-protected and may not be published in other works without express written permission from Sun Microsystems.