In this chapter we've reviewed some of the integration facilities that come with Spring to facilitate the development of an MVC layer based on a framework other than Spring MVC. It's often wise to preserve existing investments; hence such integration facilities are important. Always decide what's best for your team and try to strike a good balance between reusing existing knowledge and introducing new concepts that will help your team get those projects done more effectively while creating highly flexible and maintainable solutions.
We've seen how to integrate with Spring's ApplicationContext classes in general, using the Servlet Context: the place where web applications generally store application-wide data. We've also seen how to make Struts actions behave like Spring beans, allowing you to reuse your existing knowledge of Dependency Injection with Spring. We've also seen how to use the WebWork SpringObjectFactory to wire up XWork actions using Spring.
In this chapter, we covered the leading Java web tier technologies (besides Spring's own MVC framework): Struts, WebWork, Tapestry, and JSF.
In the future, we expect that many more open and closed source software packages will provide libraries to integrate with Spring. If you encounter another solution that you need to integrate with, be sure to check if there is something available already. You can consult the Spring forum or the people who originally developed the solution you want to use. If you need to write web tier integration yourself, the examples in this chapter of integration with Struts and other technologies should provide a good starting point.