I’ve use Struts and played with Spring. Stripes is so much easier. It takes Java EE and makes it almost as fun as using something like Ruby on Rails. It is annotations over configuration framework, which may take a little getting used to, but once you’re into it you just sail right along into programming heaven.
I’m just a Regular Average Java Programmer (RAJP), so I can’t give you a technical point by point on why to use Stripes. I’ll leave that to the experts. Stripes: A successful first project
But here’s the way I look at it. Stripes is focused on one thing: request plumbing.
It takes a GET or a POST and sends it to the right Action Bean (controller) and to the right event (Action Bean method). The Action Bean does stuff with the data and then chooses a view. It maps data from the model to the view and it maps data from the view into the model. And then it give you really cool little helpers like validation, layout managers, and interceptors to handle cross-cutting concerns like, say, security.
It does not persist data. It says, “Hey, there’s lot’s of cool ways to handle data. That’s not our job. Do it how ever you want to.” (see EJB and JPA and DAO/Transfer Object, Stored Procedures, and such).
It does not handle dependency injection. It says “Hey! There’s these things called EJBs and Spring Beans that do DI really well. Give them a try!”
It’s light-weight and focused on wiring things together without a bunch of XML. It’s goal is to handle all of the wiring for data binding and navigation (much like Ruby on Rails) in order to free you up to build your system.
I use it with JSP, JPA and EJBs. One guy on my team uses Spring Beans instead of EJBs. One gal on my team uses JDBC DAO and Stored procedures instead of JPA. If you like, you could use a different view framework like FreeMarker. Stripes doesn’t care. It plays well with others.
The more I use it, the better I like it. It has never disappointed!
Please use Stripes. We’re a small, but very satisfied community. More people should be using it.