Setting the Stage for Dynamic Validation
You can employ JSF UI components and the Ajax4JSF framework to develop an application that performs dynamic validation as a user enters data. The form acts as an interface for creating catalog entries that are stored in a database table. Each catalog entry has a unique field, called Catalog ID
, and for each record there are fields for journal title, publisher, edition, article title, and author.
You can use the AJAX web technique to verify dynamically whether or not an ID value is valid. To perform this kind of validation without AJAX, the complete form would need to be posted to the server to check if a specific ID value exists. If the specified ID value is already in the database, and therefore "invalid" to use as a new ID value, the form would have to be resubmitted with another ID value.
By using AJAX the ID value can be "validated" dynamically as the value is typed in the Catalog ID field. In the example discussed here, catalog records are stored in an Oracle database; therefore, be sure to install Oracle Database 10gincluding the sample schemaand create a database instance called ORCL, if you are following along. You can use this SQL script create a database table:
CREATE TABLE OE.Catalog(CatalogID VARCHAR(25)
PRIMARY KEY, Journal VARCHAR(25), Publisher VARCHAR(25),
Edition VARCHAR(25), Title Varchar(255), Author Varchar(25));
INSERT INTO OE.Catalog VALUES('catalog1', 'Oracle Magazine',
'Oracle Publishing', 'July-August 2006',
'Evolving Grid Management', 'David Baum');
INSERT INTO OE.Catalog VALUES('catalog2', 'Oracle Magazine',
'Oracle Publishing', 'July-August 2005',
'Tuning Undo Tablespace', 'Kimberly Floss');
Installing JDeveloper 10.1.3.2 is also recommended. This version supports JSF 1.1. Then download and extract the Ajax4JSF binary distribution ZIP file: ajax4jsf-1.0.6-binary.zip
Now you are set to create a JSF application and use the Ajax4JSF framework to add AJAX functionality to it. Your JSF application will consist of a simple input form for a catalog record. As mentioned previously, the form requires a unique Catalog ID field, and the value it receives is validated dynamically on the server. A message displays to indicate the validity status of the ID value. Begin by creating a new application that will be added to the Applications Navigator along with a project:
- Select File-->New to create a JDeveloper application in the New Gallery dialog.
- Select the General node in the Categories pane, select Application in the Items pane, and click OK.
- Specify an application name, and click OK.
- Specify a project name.
Next, you'll need to create a JSF page:
- Select File-->New, and select Web Tier-->JSF.
- Select JSF JSP, and click OK.
- Click Next in the Create JSF JSP Wizard.
- Select J2EE 1.4 in the Web Application frame, and click Next.
- Specify a file name, input.jsp, and click Next.
- Select Automatically Expose UI Components in a New Managed Bean in the Component Binding frame, and click Next.
- Click Next in the next frame, as the JSF Core 1.0 and JSF HTML 1.0 libraries are selected by default.
- Select the default HTML Options, and click Next.
- Click Finish.
Completing this procedure adds the input.jsp
file to the AjaxJSF project.
Next, add a JSF JSP page named catalog.jsp that is to be displayed if a catalog entry is created without an error. Also, create a JSF JSP page named error.jsp that is to be displayed if an error does occur as an entry is being created. Be sure to select the default options in the Create JSF JSP Wizard for both catalog.jsp and error.jsp.
Figure 1. Project Libraries: Project libraries for the Ajax4JSF project are available in the Ajax4JSF binary distribution.
Figure 2. Structure: The Applications Navigator area shows the hierarchical directory structure of the AjaxJSF application.
Select the Do Not Automatically Expose UI Components in a Managed Bean option in the Component Binding frame. You will also need to add the lib/Ajax4jsf.jar and lib/oscache-2.3.2.jar files from the Ajax4JSF binary distribution to the project. The project libraries for the Ajax4JSF project are shown in Figure 1.
Copy the JAR files ajax4jsf.jar and oscache-2.3.2.jar from the lib directory of the Ajax4JSF binary distribution to the WEB-INF/lib directory of the AjaxJSF application. The directory structure of the AjaxJSF application is shown in Figure 2.