Recently I have finished one assignment on J2EE technology and it was the good experiences.
Project was typical web-based with database driven. After studying the application I decided to use JSF in front end, spring in middle and hibernate for interacting with database.
Though I haven't worked on JSF & Spring prior to this project and my team was also new but I took the challenge also.
I decided for JSF because the client wants rich GUI. As soon as we started and get into the project I realized that learning curve of JSF is very high. At that time team was struggling very hard to get hold of it. And the result was we delivered first module 10 days after the deadline.
As time passes, we got the hold of JSF and delivered the all the modules on/before time. We had used various in-build components available on net which actually saved most of our time.
We had also met the performance benchmark of client.
So what I feel for small & middle level projects you can use "JSF-Spring-Hibernate" because:
1. You will get good in build components in JSF
2. Spring helps you in wring objects and it has a good feature of AOP
3. Hibernate is a good ORM tool with lots of feature.
Apart from good learning on "JSF-Spring-Hibernate" framework I also learned that you should also keep in mind while deciding on tools/frameworks that how is team and what is the time frame.
So guys try to use "JSF-Spring-Hibernate" framework and share your experiences.