The author goes in to some detail about the philosophy of the book, how he intends to present it as a "action" oriented book, rather than a list of instructions. That's fine, but the actions that he presents are terrible.
I bought this book mostly to see what's changed since Struts 1, which is what I'm familiar with. I'm somewhat familiar with Struts 1.1, I've messed with DynaActionForm and some of the new validation features. So I know what Struts is capable of... and it's not this.
Struts is an excellent controller (the C in MVC), and it has a lot of really handy tags that you can use in your JSP pages. Where the author completely misses the mark is that he concentrates so heavily on the tags and very little on what makes Struts really powerful... its controller. That's not to say that he only concentrates on tags, he goes into great detail about integrating a database, writing a properties singleton, and other garbage that has nothing to do with struts.
He frequently uses a jsp page as the URL to visit to access a page. A good Struts implementation should rely COMPLETELY on Struts as its controller. This means that all of his pages should have been *.do pages. Not only does this allow for pre-render logic, but it means that you can switch out what JSP page you want to use without having to change your URL. It's pretty much the foundation of struts, and yet it's completely lost here.
Another thing I found missing was action-specific forwards. His action tags were almost all single, closed <action/> tags with no content in between. He opted instead to use global forwards for everything.
I'm not a genius, I obviously have something to learn about Struts if I'm still buying books. But Struts is about making things clean, abstracting the Model 1 grossness that JSPs introduced. This book is a piecemeal organization of some capabilities of Struts. Not only is this book lacking on any high-level struts capabilities, but I think it actually teaches bad programming.