Using a TagLibraryValidator

A feature introduced in JSP 1.2 is the tag library validator, represented by the javax.servlet.jsp.tagext.TagLibraryValidator class. The container gives a validator access to an XML representation of the complete page. A validator can therefore verify interactions between custom actions, for instance that a custom action that must be used as a subelement of another action element isn’t used anywhere else, or that action elements are used in the appropriate order. It can also analyze the use of custom action attributes, perhaps making sure that mutually exclusive optional attributes aren’t used for an action element.

The container uses the validator defined for a tag library when it converts a JSP page to a servlet, after performing validation of the page based on the information available in the TLD (attributes and empty bodies).

Example 22-7 shows the top part of a validator that verifies that a <xmp:child> custom action element is used only within the body of an <xmp:parent> action element.

Example 22-7. Validator class declaration
package com.ora.jsp.tlv; 
  
import java.util.*; 
import javax.servlet.jsp.tagext.*; 
import org.jdom.*; 
import org.jdom.input.*; 
public class OraTLV extends TagLibraryValidator { 
    private SAXBuilder builder = new SAXBuilder(  ); 
    private Namespace jspNamespace = 
        Namespace.getNamespace("http://java.sun.com/JSP/Page");

The validator class extends the TagLibraryValidator class that is part of the JSP API. In this particular validator, ...

Get JavaServer Pages, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.