This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Spring is a lot of things. Struts is primarily a web application framework. It is not unusual to use both in the same application. Which framework is "best" depends on your requirements. You have to look at the features provided by each (including the possibilities of mixing and matching frameworks to create an application stack) and see which matches your requirements best (the same goes with all the other technologies you mention).