We continue with part two of Chapter 2 of Introduction JavaServer Faces Programming, by Budi Kurniawan (McGraw-Hill/Osborne, ISBN 0-07-222983-7, 2004). This section deals with the ActionListener and Component Tree, as well as validation and navigation for your JSP pages. This chapter prepares you for the next chapters by introducing the JSF Application Programming Interface (API) and the Application Configuration file.
The navigateComponentTree method is called recursively. It first prints the identifier of the component passed in to it. The identifier is indented by a number of blank spaces proportionate to the level argument. The level argument determines the number of spaces before the component name. The indention gives the effect of a hierarchy. When called from the processAction method, the navigateComponentTree method is passed 0 as the level argument.
The navigateComponentTree method then obtains the children of the passed in component by calling the getChildren method of the UIComponent interface. The getChildren method returns an Iterator containing all children of the component.
Iterator children
= component.getChildren();
Next, it iterates all the children and calls the navigateComponentTree method for each of the component’s children.
</f:use_faces><f:use_faces>// navigate children while (children.hasNext()) { UIComponent child = (UIComponent) children.next(); navigateComponentTree(child, level + 1); } } </f:use_faces><f:use_faces>
NOTE All the applications for this book can be downloaded from the book’s web site on http://www.brainysoftware.com. Applications are named after the chapters, thus JSFCh01 for Chapter 1, JSFCh10 for Chapter 10, and so on. Because Chapter 2 has three applications, they are named JSFCh02a, JSFCh02b, and JSFCh02c, respectively. You simply need to copy these applications to the webapps directory under %CATALINA_HOME%. All .java files are located under the WEB-INF/classes directory. Also, you must copy the jar files to the WEB-INF/lib directory of each application, as explained in the “Introduction.”
Compiling and Running the Listener and Component Tree Example
To compile the application, change to the JSFCh02a/WEB-INF/classes directory. If you are using Windows, type the following command:
Note that to compile the source files, you need two library files in the lib directory and the servlet-api.jar file. In Tomcat 5, the servlet-api.jar file can be found in the common/lib directory of Tomcat’s home directory.
If you are using Linux/Unix, use colons (rather than semicolons) to separate the library files:
Then run Tomcat. You can then direct your browser to the following URL:
http
://localhost:8080/JSFCh02a/faces/adder.jsp
Note that you use the /faces/ pattern before the JSP page name. You will see something similar to Figure 6 in your browser.
Remember: This is part one of the second chapter of JavaServer Faces Programming, by Budi Kurniawan (McGraw-Hill/Osborne, ISBN 0-07-222983). Stay tuned for more helpful chapters from McGraw-Hill/Osborne. Buy this book!