2014/01/18 - The RDC Taglib has been retired.

For more information, please explore the Attic.

Reusable Dialog Components (RDC) Tag Library

JSP 2.0 Reusable Dialog Components (RDC) is a framework for creating JSP taglibs that aid in rapid development of voice and multimodal applications.

Project Motivation

Server-side generation of HTML has proven an effective way of generating the user interface for visual Web applications that are implemented using server-side application frameworks such as Struts. Over time, the effort involved in such HTML generation has been reduced by the availability of various JSP tag libraries that abstract away the minutiae of HTML markup. The goal of the RDC project is to achieve for voice applications what JSP tag libraries have already achieved in the world of visual Web applications.

The voice application space is seeing rapid growth with the maturation of speech technologies along with the arrival of a stable and robust voice programming model as defined in the W3C VoiceXML 2.0 REC few years ago. A necessary next step in mainstreaming the development of server-side voice applications within environments like Tomcat is the availability of the appropriate tag libraries that help isolate the JSP developer from the intricacies of spoken interaction. The goal is to help package specialized speech design skills in the form of JSP tag libraries that make it possible for JSP developers to easily speech-enable Web applications.

Project Overview

The RDC taglib project provides the following pieces:

  1. A small collection of speech dialog components that aid in basic user interaction.
  2. An extensible JSP-2.0 framework for implementing additional speech components that can collaborate in producing complex spoken interaction.
  3. A collection of sample applications that demonstrate the use of these components.
All functionality is implemented either directly as JSP 2.0 tag or tagx files, or as Java classes that implement the equivalent JSP 2.0 tag implementation interfaces. Dialog components come with speech grammars authored as srgs files, a set of default prompts, and the associated Java beans that implement validation of the data collected by that component.

The code is under active development, and we are continuing to evolve and enrich the basic framework as we exercise the presently available functionality by authoring new components and by using these components in real-world voice applications.

All components in the RDC taglib produce VoiceXML 2.0 that can be served to any VoiceXML 2.0 compliant voice browser. The generated applications can be deployed to a standard Tomcat server and be accessed by a VoiceXML 2.0 compliant voice browser.


This tag library requires JSP 2.0 support and has been developed on Tomcat 5.5. It depends on the following libraries, many of which can be obtained from various Apache projects:

  • jstl.jar and standard.jar (JSTL 1.1.2)
  • jsp-api.jar (JSP 2.0) for building custom tags
  • commons-el.jar (1.0) for delayed EL evaluation
  • struts.jar (1.2.9), commons-digester.jar (1.8.1) and commons-beanutils.jar (1.8.0) for struts examples and the rule-based directed dialog
  • commons-logging.jar (1.1.1) for logging in taglib and sample applications
  • commons-scxml.jar (0.9) needed for the SCXML dialog management strategy of the RDC group container
It may be possible to use Commons library versions lesser than the ones quoted here.

A majority of the tags implemented by this tag library have been created as .tag files. Tag handlers implemented in Java extend JSP 2.0's SimpleTagSupport .


For more information about the Reusable Dialog Components (RDC) Tag Library, look at the on-line documentation:


Download a binary distribution of the Reusable Dialog Components (RDC) Tag Library:

For information on how to use the distributions in the download section, look at the following documentation:

RDC News

  • 01/12/2009 The build has been moved to Maven2.
  • 08/01/2006 The SCXML code has been refactored as a generic engine into its own sub-project Commons SCXML . The RDC taglib has a new dependency of Commons SCXML.
  • 07/29/2005 The RDC tag library has provided an alpha version of an SCXML engine, and a SCXML dialog management strategy for the RDC group container.
  • 07/20/2005 The RDC tag library has graduated out of Taglibs sandbox with a 1.0 release.
  • 04/25/2005 Internationalization support has been added to all component tags.
  • 02/25/2005 The Music Store sample application is now multi-channel (Speech + small device GUI)!
  • 02/12/2005 Check out the RDC based Music Store sample application (uses Amazon Web Services)!
  • 01/24/2005 Check out the new features in the RDC pre beta release!
  • 09/10/2004 Check out the new Reusable Dialog Components (RDC) taglib!


List of contributors:

  • Rahul Akolkar