Struts In Action
Struts In Action: Building Web Applications with the Leading Java Framework
Ted Husted, Cedric Dumoulin, George Franciscus, David Winterfeldt, Craig R. McClanahan
664 pages. Manning Publications (November 2002). ISBN: 1930110502
is divided into four sections:
- Chapters 1 through 4: Getting Started with Struts;
- Chapters 5 through 9: Raising Your Framework;
- Chapters 10 through 13: Building Your Pages; and
- Chapters 14 through 17: Examples.
The first section, Getting Started with Struts, has a short intro to struts, including some background
information on web applications, followed by a more detailed look at the struts architecture, then a simple struts example and a detailed look at how struts is configured.
The second section, Raising Your Framework, gets deep into the nuts of bolts of struts,
with individual chapters on Action Forms, Action Forwards, Action Mappings, Action Objects and how to extend the Action Servlet.
The third section, Building Your Pages, has some great practical information on how struts
fits in with the rest of the application, including using JSP tags for dynamic content, using Tiles with Struts, how to validate user input, and how localization works.
The fourth section has a detailed example application, a chapter on migrating to struts 1.1
and a chapter on using Velocity instead of JSPs.
Overall, I enjoyed the book and found it useful. The book has a very good explanation of the main
components of struts, how these components work together, and how struts fits in with the rest of your application.
One of the things I really liked about this book was the excellent example in the first chapter. In 10 minutes, I was
able to get the example up and running on my machine and see how struts works, with only one minor change to the code as provided: just changing the "perform" method to
"execute" to match the much newer version of struts I was using.
Another great item in this book is the tables on pages 55+ listing the advantages and disadvantages of struts.
For anyone considering using struts, these tables alone are worth the price of the book.
Page 77 has an excellent trace through of a struts application at work with a detailed, sequential listing, tracing
execution from where the user submits a request from the browser until the result is returned to the user, identifying what each piece of struts does along the way.
One of the most complicated parts of writing a struts application is configuring the application. The authors rightfully
dedicate a full chapter to struts configuration to help make sure readers understand what they are doing.
Chapter 14 is a great review of overall application design, right from the front end through
to the database. It includes good information on why it is important for non-trivial applications to have a business object layer, really the model in MVC,
and not just to write the code for the business logic into the Action classes.
There is one big disadvantage this book has: its publication date was in 2003. This was just as
Struts 1.1 was being released. As of August, 2006, when this review is being written, the latest release is Struts 1.2.9. Due mostly to the publication date, the book
has two glaring omissions - there is nothing on the Spring Framework and nothing on one the hottest topics of 2006: Ajax.
Overall, this book is an excellent introduction and ongoing reference to struts. Until a new edition is released, this edition is still a worthwhile purchase.