# Understanding BI Beans JSP Tags

You can use JDeveloper to create BI Beans JSP applications. A JDeveloper wizard prompts you for information related to the tag that you want to create and inserts the coded tag in the JSP page. You can edit BI Beans JSP tags in JDeveloper.

The following concepts are presented to aid your understanding of BI Beans JSP tags and to assist in avoiding errors if you edit pages that contain BI Beans JSP tags:

- Identification of the BI Beans JSP tag library

- Four BI Beans tags are required in every page

- Programming model: Define and render

- Thread-safe processing for BI Beans JSP tags

## Identification of the BI Beans JSP tag library

The following information identifies the tag library for BI Beans JSP tags:

Tag library URI: `/webapp/BITags.tld`
Tag library prefix: `orabi`

Namespace for BI Beans JSP tags: `http://xmlns.oracle.com/bibeans/jsp`

## Four tags are required in every JSP page

Four required tags are automatically generated in every JSP page that you create from the New Gallery in JDeveloper. These tags are as follows:

1. BIThinSession -- BIThinSession is the first tag that appears in every JSP page. It must occur before the first Render tag in the page. JDeveloper inserts the BIThinSession tag before the default <FORM> element that it also inserts in the JSP.

2. BIBody -- BIBody replaces the usual HTML Body tag in a BI Beans JSP page. This tag is required in order to provide fully functional partial page rendering capability.

3. InitBITags -- InitBITags initializes the BI Beans JSP tags on a page and must be placed before any
   data actions are accessed. This tag provides the name of the parent form for the other BI JSP tags that need this information.

4. InsertHiddenFields -- InsertHiddenFields must appear as the last tag before the </FORM> element in every BI Beans JSP page. This tag inserts hidden fields that are related to state and event handling.

## Programming model: Define and render

The thin beans that are instantiated by the BI Beans JSP tags are interdependent and need to send and process events. To facilitate this processing, BI Beans JSP tags observe the following programming requirements for each bean that is to appear in a page:

1. Insert a content tag, within the BIThinSession tag, to define the bean that is to appear in the JSP.

2. Insert a Render tag for each bean that is to appear in the JSP.

JDeveloper observes these two requirements automatically when you finish a wizard for a BI Beans JSP tag. That is, JDeveloper inserts a content tag within the BIThinSession tag and a Render tag at the location of the cursor in the <FORM> element of the page.

Note: Do not insert any other code inside the BIThinSession tag and do not write code that refers to a bean until after the end of the BIThinSession tag.

## Thread-safe processing for BI Beans JSP tags

To provide thread-safe processing for the BI Beans JSP tags, JDeveloper inserts automatically a synchronized scriptlet to create a block of code that is synchronized on a session object. The BI Beans JSP tags must be contained within this block of code to prevent unexpected results when multiple requests are processed.

Related Topic

List of BI Beans JSP Tags