# com.bea.wlw.netui.tags.databinding Package

This package defines a set of JSP tag extensions providing repeating databinding support.

The tags in this package fall into one of two categories:

- Method invocation tags
- Repeating databinding tags

The first tag set is used to invoke methods on Controls or PageFlowController instances. The former allows access to controls from pages, and the latter allows code that would normally be written in a JSP page to be shared among pages through the pages' shared PageFlow.

The second tagset consists of repeating tags that are used to render data sets into a JSP page. A repeating tag is a tag that, given a data set, renders each item or a subset of items in the data set into a page. The top level tags in these tag sets are:

- Repeater
- CellRepeater

Inside the bodies of each of these tags, other NetUI tags can be placed. In general, the body of a repeating tag is rendered once for each of the items in the data set, and the child tags can bind to properties on the "current" item by using the expression context `container` and referencing the current item with the syntax `container.item`. The Repeater tag can also be used in a more structured way where it can render a header, item, and footer where the item is rendered once for each item in the data set. Many different types of data sets can be rendered by these tags including Java Collections, Maps, and arrays. For each of these tags, the `dataSource` attribute is used to reference a data set to render.

A final repeating, databinding tag set is the Grid tag set, which is used to render data from a `javax.sql.RowSet` object. A RowSet is a disconnected data set that contains data from a relational database, and the Grid tag set provides the ability to page, sort, and filter this data. The Grid tag does not render its item using other NetUI HTML tags, rather the Grid renders using its child Columns and specific column tags that render UI for each cell of each record in the RowSet.

The Repeater and Grid tags are complex tags that render their bodies many times but only render part of their bodies each time. These tags use a state machine and a "render state" that is exposed to tags that are members of the Repeater tag set and Grid tag sets respectively. Tags that unerstand these states render in the appropriate state in order to produce the markup that is written to a JSP pages.

## Class Summary

SortFilterService | The `SortFilterService` is used to keep track of sorts and filters query parameters that are stored on the URL.