At first when I read GUI framework I thought you meant Swing or SWT but I see you mention struts so I guess you mean presentation framework.
I agree that Tapestry is very good, but there are several others that are also quite good. Struts2, Stripes etc. Matt Raible has a very nice project going where he did all the initial integration work for several different technologies. It is quite easy to get up and running with struts+spring+hibernate or JSF or Tapestry and so on. He calls it AppFuse.
I use struts2 with spring and hibernate and sitemesh which was an AppFuse project to start with and it has served me well.
Stripes seems to be a great starting point for a Java web app too. I haven't used it as yet but I'm tempted.