The last time I looked at web applications, the consensus seemed to be Struts/J2EE. Now, it looks like Spring MVC/J2EE or Struts/J2EE are both viable solutions. Is this generally correct? Or is Spring MVC now the consensus choice over Struts? We have at least one guy who has worked with Struts before and wants to go with that. I'm more familiar with Struts as well, having reviewed in the past. Also, is J2EE still considered the viable solution for handling remote components? Or are there alternatives?
All those solutions are perfectly viable. Unless you are just looking to pick up a new technology, go with struts since it's what you know.
There is no real consensus for the presentation layer which is to me still a "throwaway" part of a Java EE application. The mentioned solutions don't suffer from big drawbacks or design problems and will do the job. I would just add Stripes which is a very elegant framework based on Convention over Configuration, simple and easy to learn if you have some experience with an action-based framework. And there is also Wicket, although Wick is a component-based framework which is a different paradigm.
Just pick one of them (the one you know the most seems to be a decent choice).
FYI, Matt Raible has done some nice comparisons of Web Presentation Frameworks that are not totally outdated and still interesting. Check it out.