Spring framework was long awaited. If I have to pick one reason that's I hate having ActionForms. Not only action forms need to extend a class you also need to have your action form elements as strings. If you don't have the elements as strings you need to put some convoluted logic (refer struts live book) to handle validation.
Secondary hibernate and other O/R persistence tools have become industry ready and struts was developed long before hibernate came. Spring provides nice abstraction and reduces the database access code by 70%.