Indeed, there are many web frameworks out there, and I've tried a good dozen of them before Stripes became my favorite.
Every framework has its sweet spot, but here are some key points that I has put Stripes at the top of my list:
* Easy to learn. Many frameworks give you considerable benefits BUT you need to get over a steep learning curve before getting a return on your investment. Not so with Stripes. This makes it easier to integrate within a team of several developers, because they will all get up to speed quickly.
* Very little configuration needed. The only file you need is web.xml, and the configuration that you need there is concise. Furthermore, you typically "set it and forget it", that is, you don't need to edit the configuration for day-to-day work.
* Simple and transparent. Stripes is not a "magic black box"; it uses a simple request-response mechanism that is a natural fit with the HTTP protocol. You can easily understand what is going on. Stripes also makes it easy to plug in your favorite AJAX framework because it works well with vanilla HTTP GET and POST requests.
* Powerful mechanisms for type conversion, formatting, interception, and so on. Typically you just need to use annotations, or implement an interface, and Stripes picks up your modules automatically. This makes Stripes very easy to extend and customize.
* Reusable layouts with three simple tags. No configuration (XML or otherwise). It just works.
* Built-in mock-testing framework. With the mock objects that Stripes provide, you can easily unit-test your application.
* Built-in support for dependency injection with Spring. As demonstrated in the book, it's also quite easy to add support for Guice as well.
* Overall, Stripes just tends to work as expected without any convoluted complexity. Quickstart is nice, but Stripes shines even more when you have a large project with several developers and your code base can remain trim, to the point, and easy to follow.