I've searched through your site and done quite a bit of reading on the various frameworks available to Java web designers. I know that everyone has their favorite, but quite frankly, the choices have overwhelmed me.
I've done web programming with PHP and MySQL off and on for about three years (nothing hugely complicated). I am undertaking a project at work to tie all of our departments together via a web based system (we're a small company; under 20 people), and I figured Java would be the best bet for scalability and overall power.
I've done my planning and am ready to move into the design/coding phase but can't seem to decide on an appropriate framework to use that will work for someone who has gone through the Head First Java and HF Servlets & JSP books, but is still a web app beginner.
EJB3 looks promising from a scalability and security standpoint (since we might be offering this system to outside customers), but has such a large learning curve. Am I trying to drive a semi tractor when a pickup would do?
In playing with JBoss, I've discovered Seam (and picked up Nusairat's book) but keep getting overwhelmed with having to go back and reference EJB3 (which I'm learning at the same time).
I've touched on Struts and Hibernate; but nothing too deep.
Yeah. The number of frameworks overwhelm, especially when there are quite a number of offerings. I would approach the problem through a iteration where the basics of the requirement is built and on top of that iteratively refactor your application as more visibility on non functional requirements of you system evolve.
To start of I guess you can build with what is most familiar to you: 1) Jsp - for front end 2) JSTL or custom tags for any variation in UI. 3) Navigation or Controller - you can pick up any which is most suitable to you in terms of learning curve. It can be struts (since you have gone thru) or spring webflow. 4) The business logic or service can now be in POJO (plain java). This can be re factored to EJB later or web services etc if required. 5) Introduce loose coupling between Struts action classes and POJOs by invoking thru a configuration driven factory or something. So that you need not change that layer later. 6) Persistence can be handled thru simple DAO layer or something like Hibernate can be used.