Choosing a base class

There are two basic types of components: those that use an HTML template, and those that don't.

Nearly all of the base components provided with the Tapestry framework don't use templates. They inherit from the class AbstractComponent. Such components must implement the protected renderComponent() method.

Components that use templates inherit from a subclass of AbstractComponent: BaseComponent. They should leave the renderComponent() method alone.

In some cases, a new component can be written just by combining existing components (this often involves using inherited bindings). Such a codeless component will consist of just a specification and an HTML template and will use the BaseComponent class without subclassing. This is even more possible when using helper beans.