If those were your problems, then you're absolutely right, Gentoo wasn't for you. I'm running it on my workstations which need every optimization and customization to even be run correctly (certain versions of X with nvidia drivers ..with certain GCC install etc).
If out of the box configuation is what you seek, Ubuntu is the best choice
I use Ubuntu on my family computer. Everything .."just works".
If you plan on using Spring with Hibernate, try looking at this tutorial. http://www-128.ibm.com/developerworks/web/library/wa-spring2/ Hibernate is extremely easy to use with Spring because the Spring developers have done a great job abstracting it well enough so that you do not need to go through ever little detail to get it working.
I would recommend using Spring's MVC with JSP until you are comfortable with the many facets of the MVC idea. Personally, I use Spring's MVC with Velocity because I like to template a lot of my stuff. It's possible to use Spring's AOP and inject the AOP objects into another MVC architecture such as Tapestry. Just get familiar with Spring's MVC approach first, then you can branch out to the more component based frameworks such as Wicket and Tapestry.
I don't understand what part of Gentoo is high maintanence. I've been using Gentoo for awhile now and it's not high maintanence. Do you mean updating and waiting hours for compilation just to update? That could get annoying I guess.
Ubuntu has become such a great distro for so many people who would never have switched if it wasn't for Ubuntu. All my friends who use Windows have switched to it and love it. It has all of the support(drivers) you want for hardware.
For a desktop linux distro, I'd give it way more push than Fedora. Fedora has been a test bed that has turned sour. The bugs have killed so many people who used to like RedHat. My recently installed FC6 on a friend's machine and haven't seen any bugs..yet.
Personally, I use framworks (Mostly Spring...) because it gets a lot of the lower level stuff out of the way. I understand Servlets and JSP etc, but deadlines are deadlines. Using Spring for me saves a lot of time when it comes to writing controllers. I can free my time for writing the logic behind the business model instead of worrying about things being parsed correctly (I could just use a validator in Spring). If the webapp I'm coding needs some extreme maneuverability I may drop down to the Servlet level, but usually using a framework helps me get to the business logic and model in a more direct manner.
If you know what you are doing, you can select the appropriate framework for the job. Recently, I used Click framework for a relatively simple web app and it works wonderfully. It's definitely an overhead in the first place to learn the new framework, but it pays off afterwards if you can master when and where to use it.
I've used Struts and Spring in production environments which good results. Personally, I do more work with Spring because of its tight integration with Hibernate. The documentation is excellent and it can handle a lot of the tough stuff without breaking a sweat. It never hurts to know many frameworks, especially when they are all good competition. I recently tried other frameworks such as Wicket, Click and Tapestry, but none of them offered the documentation that Spring and Struts have. I were you, I'd learn Spring and also look up how to integrate them together (Excellent stuff).
IBM has an article on integration Spring with Struts.
I'm not sure how much you've modified but maybe you want to figure out where the JDK is actually located. I usually keep mine in /opt/java, then symlink to /opt/jdk1.whatever. Try doing ls -l `which java` because maybe that will reveal the symlink and you can find the 1.4.2 folder. When in doubt, I would really consider removing the java RPM you've got, then placing your JDK in /opt/ (or any other place that is convenient) then modifying the /etc/profile as previously suggested. I would never leave a package management system (such as Redhat's RPM) in control of Java's SDK because it always adds variables that may or may not be to your liking. Also, if you want to see hidden files, use putty and 'ls -a'
Looking for a job around the area, I know core Java and Hibernate\Spring. I'm currently working at another company using frameworks like Spring and Tapestry with Hibernate. I also set up 30 workstations on a linux netboot. I'm linux oriented but can use windows and mac.
I have a one to one between Domain and Form. I want to create the Domain object using my controller in Spring. I created the Domain object then created a Form object, then did Domain.setForm on the new Form object. I then tried to save to the DB and only the parent is persisted, not the child.