HTML Tag Library

The HTML Tag library contains the base classes and core HTML JSP tag extensions. This page provides a technical introduction to the HTML Tag Library. This information is intended to provide a developer familiar with JSP Tag Library development a starting point for understanding the implementation details of the NetUI HTML Tags. This is not aimed at JSP authors using the HTML tag library.

Overview

All of the NetUI Tag Libraries are based upon JSP 2.0.

The HTML tag library is designed to provide first class support for HTML and XHTML. The primary design of the tags set is to be very close to HTML. We do not try to abstract general UI design patterns and provide high level abstractions. We do provide some higher level tag sets such as the Repeater, Grid and Tree which provide commonly used UI constructs. In the future, the community may provide a new Tag Library set which would provide markup neutral UI abstractions. Currently, this may be pages base upon Java Server Faces.

Another overall goal of the NetUI tag libraries is to provide seamless integration across all three tag libraries. Concepts used in one tag set are also used in the other tag sets. In addition, specific tags defined in one tag set may be used by other tags sets instead of introducing new tags providing the same concept.

A common set of base classes and interfaces provide low level features to all of the tags. These base classes are defined in the HTML library. This creates a dependency between the HTML tags and the databinding and template tag libraries.

HTML Tag Library Information

Source Module Location: $/netui/src/tags-html

JAR File: beehive-netui-tags-html.jar

TLD File: beehive-netui-tags-html.tld

URI: http://beehive.apache.org/netui/tags-html-1.0

Overall Design Patterns

There is a couple of design patterns used in the Tag libraries. The first is that interfaces begin with the letter ‘I’ unless the interfaces simply contains constants. When an interface contains only Constants it will not start with 'I'. Abstract classes typically contain either Abstract or Base in their name. Classes containing static utility methods typically end with the word Utils.

Unfortunately, there are a few inconsistencies currently in the code base. These inconsistencies need to be removed where possible before we ship the Beehive 1.0 release.

Base Classes

The base classes for all of the tags are found in the HTML Tag library. They are found in the package org.apache.beehive.netui.tags and the source is located below the $/netui/src/tags-html directory. The following table describes each base class.

Primary Base Classes

Class

Description

Abstract{{`}}{{`}}Classic{{`}}{{`}}Tag

The common base class for Classic tag handlers

Abstract{{`}}{{`}}Simple{{`}}{{`}}Tag

The common base class for Simple tag handlers

These are the core base classes. The reason we have two is to provide both Classic tag handlers and also the new JSP 2.0 Simple tag handler. The HTML tags use both type of tags. Classic tag is used to allow developers to continue to use Scriptlet inside of their JSP pages. Simple tags are typically used for tags that are either empty or only only allow tags that modify their behavior. The core of the HTML tags are all Classic tags at the moment, due to a common set of base classes shared by all of the HTML tags.

These base classes provide two basic services to subclasses, error reporting and name scoping.

HTML Tags

JavaScript and HTML Controls

This page describes how HTML_Controls_are_named_and_how_JavaScript_support works. For the HTML controls (Button, Text{{`}}{{`}}Box, Select, etc.) the name attribute is generated based upon the databinding expression. The tagId is used to generate the id attribute. The tagId is passed to the URL Rewriter service to allow for names to be scoped. The tags then generate Java{{`}}{{`}}Script variables to allow authors to lookup these names at runtime in a consistent way.

  • No labels