Spring has excellent DAO abstractions for Hibernate, JDBC, SQLMaps, and maybe some others. It provides declarative transaction support that's as feature complete as EJB's and easier to set up. It greatly simplifies building and configuring your service and business objects at startup with dependency injection.
Spring has it's own web MVC framework, but it also supplies abstractions for working with Struts, WebWork, Tapestry, and a few others I think.
With your use of the "Session Facade" pattern, are we to infer that you'll be using session EJBs to wrap/implement your DAOs? If you go with Spring, you can ditch EJBs and stick to straight-up J2EE running in a servlet container.
Good luck on your journey, and welcome to the One True Path.