I first started creating Web applications using JSP/JSF pages and Servlets.  I really followed the J2EE standard on creating Web apps.  Then I thought that was too cumbersome and started looking for alternatives.
I landed on Apache Struts 2, Apache Wicket Framework, Symfony, PHP Zen, and quite a bit more. Even tried Ruby on Rails for a little bit.  Eventually, I was back at the J2EE way of doing things, except using Grails.
With Grails,  things were so much easier than having to deal with all the issues you have when creating a web application.  There is the routing, services, db integration, and just wiring up the whole thing.  That is not what you are trying to solve. So Grails made all of that go away nicely, while staying with Java.  So no need to learn another language.
a UI library called Zk and Grails to back it up.  It was fairly easy to construct a UI in Zk.  Even though it was xml and mostly by hand. But I manage to force my friends to use it and we created an application for a client.  I think using Grails too was a stretch for them, as they didn’t have the background in Spring.
I kind of regret using that so extensively, when there were other things that might have worked just as well with less pain.
I enjoyed the Grails way of things without Zk and did my own thing, while my friends pursued using Jdev extensively. For them, having been burned with Zk and a lot of hand coding of forms and configuration, they wanted a WYSIWYG type of development.
I have tried Jdev, I really have.  It is a steep learning curve and I still don’t seem to get it.  So when I got really busy with my new job, well. It was just impossible to continue on that road.
At worked, we do things the ‘harder’ way some might say. We have embraced using the Spring framework and JSF 2 via PrimeFaces UI JSF library.  A few teams have taken an exception to this, and started doing things using NodeJS and Single-Web-App.
I really enjoyed using Spring a long time ago, but just couldn’t convinced my buddied to embrace it when we did apps.  So now, I am back in Spring land at work and at home, as I jump head first into WaveMaker.  I already see that WaveMaker today, does not solve all my problems, and there is one frustrating thing, using external JAR libraries.  To use an external jar, you have to write a Java class, which both exposes methods to WM and delegates to the JAR library.  This is just too much extra work.  WM should find some way to generating delegating calls for straight calls.  But that is basically my only complaint at the moment.