Actually, JSF is not JSP-based anymore. However, it does provide the ability to do JSP-like things while automatically handling a lot of the tedious little details that you have to do manually on JSPs. Overall, however, if what you want is "fast" web development, J2EE isn't the route to go. J2EE is designed for performance, security and scalability, and each of those extracts a price. If you just want to "Git 'r Dun!", consider a quick and dirty platform like PHP, or Python, RoR, etc. For similarly-complex projects, the scripting platforms get pages out in front of managers in a hurry, even if they do replace time spend coding and compiling clean with time spent being paged when a production app crashes in front of the entire world. And, after all, myopia has been one of the defining features of American Business for decades.
JSF can provide a very productive environment for web page design. In addition to its other virtues, it's extendable, so that prettier, skinnable, and more complex UI elements are easily used, along with AJAX support in many extensions (and with JSF2, part of the core JSF).
However, JSF is just one layer in the webapp. As far as SQL Server support goes, for example, JSF doesn't care, since JSF doesn't talk to databases. That's normally handled at a completely different application level, commonly using an ORM system such as the Java Persistence Architecture (JPA).
Printing support depends on your requirements. JSF can definitely produce printable pages, especially with good CSS to help out. However, if precise layout is a must, you need PDF output, and JSF doesn't normally handle that, so it's commonly paired with some sort of non-JSF PDF generation facility such as FOP or one of the Java Report writers.
An IDE is no substitute for an Intelligent Developer.
I think I will go for the JSP and Servlets instead of anything else and the main reason is that I had some experience in the past. Security and performance is also a must therefore J2EE is the solution for me.
I found some tutorials and online material regarding JSF and I really found it difficult to understand (Probably did not find the right material??). Therefore I kinda prefer starting with JSP and Servlets and see how it goes.
Maria Michael wrote:
I found some tutorials and online material regarding JSF and I really found it difficult to understand...
This is really sad. The heart of JSF is that you provide Models (Backing Beans) and Views (JSF page templates). JSF supplies (most of) the Controllers, gets data to/from Views, comes with standard validation and conversion features and manages View navigation. Aside from requiring a good knowledge of EL and some one-time boilerplate setup stuff in web.xml, that's about it. The most common problems with JSF that show up in this forum tend to be 1) people attempting it to work like JSPs - mostly by inappropriate use of JSTL, and 2) pulling a lot of esoteric JSF classes and data structure to do what JSF does automatically with POJO objects. In other words, the basics of JSF are so simple that people can't believe it, and they go in and complicate it.
JSF apps do have their drawbacks, and not everything is simple and easy, but it's a pretty good realization of Alan Kay's maxim that "Simple things should be Simple and Complex things should be Possible". Too many systems I've seen made Simple things Complex or Complex things Impossible. Sometimes both.
Unfortunately, the rather copious selection of computer books at the local store has shrunk from 3 bookcases to one column containing mostly things like "Windows 7 for Dummies". So I haven't had much opportunity to browse lately. I got the first edition of Kito Mann's JSF in Action, but since then I mostly get my info straight from the Internet.
Some of the online vendors have preview features, so you might want to shop them and see if there are any publications that appeal to you.
Although that article is pretty old, and doesn't illustrate the annotation options from JSF2, I still think it's one of the best introducitons to JSF that was ever written and I still recommend it to people.
I don't think I've ever used that particular extension. If I have, it's been over 5 years, so I'd be way out of date.
But definitely, if you want powerful, pretty JSF, it's a good idea to add on some enhancements. The core JSF, for example, doesn't provide such popular amenities as pop-up calendar controls.
Most recently, I've been using RichFaces. I've also used the Apache extensions such as Tomahawk. IceFaces is another favorite in this forum. Oracle has an extension called ADF that they use for their apps.
Most of these extensions have similar abilities, so it's pretty much a matter of what you like and whether you can get good support for it.