Nam Ha Minh wrote:If you want only MVC, go for Struts.
If you want MVC, dependency injection, AOP, transaction manager... go for Spring.
In general Spring is a giant compared to the tiny Struts.
Just my opinion, and I have worked with Struts. that Struts is old technology and Struts 1 hasn't been changed in many many years, Struts 2 is a completely different project.
I would always choose Spring MVC over Struts anyday. Now that doesn't mean that every web application I write is with Spring MVC, I also really love Grails, well that is built on top of Spring MVC. But even other web frameworks works well too.
If I need REST apis, Spring MVC is so easy to do, especially if you use JPA, then Spring Data JPA and Spring Data REST can create all of it automatically for you.
But I am also trying to avoid
Servlets and JSPs as much as possible these days, looking for a pure html/css/javascript front ends with templating on the client side.
Mark