So here's the story: I currently work as a C# developer doing ASP.NET. While I like C# I don't like the overall quality of the .NET community; most of my past experiences have been that many .NET developers are totally ignorant of actual software engineering (e.g. design patterns, code separation, etc.). The Java area seems a lot better in this regard even if you do have to put up with the occasional "architecture astronaut".
My actual question is this: I can pick up the Java syntax easy enough since I already know C#. However, I've only worked with the full Microsoft stack for web development (WebForms, although I've looked a bit at MVC and I've done some Ruby on Rails demo stuff so I know MVC fairly well). If I want to learn enough marketable skills to be able to apply for junior-level Java development positions at companies, what stack should I look at? There are dozens of Java web frameworks out there; what would be the most common one used in companies? It seems that Hibernate is the default standard for persistence (I've done a little bit with NHibernate) so I'm okay with that. I've also seen several new Java web frameworks that seem interesting, but learning them won't give me a leg up in applying for a job at a company because I'm bettering they're untested in the corporate world and aimed at startups and similar like most new frameworks.
Which framework would be the most likely to be used at a typical company that I should start to learn in order to begin a transition to a better quality community?