Book Title: JSTL In Action

Authors: Shawn Bayern

Publisher: Manning 

ISBN: 1-930110-52-9

Review by Irina Marchenko

Paperback- November 2002, 448 pages

This nuanced account of the Java Server Pages Standard Tag Library from the reference implementation lead for JSTL, Shawn Bayern, is a thorough, yet easy, introduction to the subject aimed at the authors of dynamic Web pages, be they Java programmers with experience or novice level developers.

The book does not assume any previous knowledge of Web languages beyond HTML. JSTL was created with the purpose to simplify Java Web development. You don't have to be a programmer to make the most of JSTL. The standard tag library encourages the division of labor between Web authors with no knowledge of Java and software engineers designing enterprise applications: the former will concentrate on the presentation, the latter - on business logic behind the facade. The potential readership of the book will include everybody interested in adding functionalities to a Web site with tag-based coding. Attention Java programmers: easy and simple does not mean trivial, don't overlook this title if you are involved in JSP development. With the help of this book you will learn how to write cleaner code taking advantage of easy access and manipulation of application data with standard tags.

The text is loaded with information about 4 functional areas of JSTL actions (core, XML, SQL, and I18N) and the Expression Language. I found the explanations of EL syntax and operators very appealing. The author provides navigation tips to help the reader choose the level of detail desired. The technical tips alone are worth the book's price. The author teaches you how to do defensive checks and provides many - a bit too many, to my taste - examples of illegal syntax. Superb technical content is presented with wisely chosen formatting features and structural elegance. The source code is available from the companion Web site in convenient formats, it runs without any problems.

Rather than focusing on custom actions alone pushing the readers to cover all related topics on their own time, this book's chapters include a very effective treatment of relevant material. In addition to X-ray analysis of the JSTL tags anatomy, the reader will find excellent primers on HTML forms, XML and XPath, and JSP basics.

The author does not take sides in the hectic debate surrounding SQL tag library that enables database-driven pages. He mentions the issue of design philosophy in passing and limits the discussion to a few guidelines. The possibility of direct database access  from the presentation layer stirs up many developers' rage as it violates MVC architecture.  In all probability you won't use this functionality in production, but it might come in handy in RAD or prototyping.  

A well-written text  is typical for books on Java from this publisher, in this regard the reader will be rewarded. This time the narrative is also engaging in an unusual way. The opening chapter set my mind to work outside the technical content, by the end of the second chapter I caught myself musing about the nature of technical writing versus writing at large. In a strange way the text transcends the boundaries of a technical book. Writing is always an act of exhibitionism. A technical writer is not different from the rest of the scribbling tribe as s/he, too, starts with a goal to show the world knowledge of the subject and (less frequently) the mastery of the language, personal agenda is marginal as a rule. The genre does not leave much opportunity for authors to wear their heart on their sleeve. Things appear to be different with Mr. Bayern. He intentionally puts his own "issues" on the dust jacket, starting with an eccentric dedication to a fictitious spouse and choosing to illustrate his technical point with a host of examples and real life comparisons varying from romantic to (melo)dramatic or even pathetic (he calls them "my off-beat humor"). I'll leave it to you to decide whether the smart guy takes his audience for a ride or tries to reveal a deeper human emotion beneath his passion to JSTL tags.