JSF 2.0 is a Java based framework used for web development. It’s actually a Java specification, and is implemented by different vendors. I use the Sun Reference Implementation (RI) Mojarra but you can also use others.

JSF 2.0 includes Facelets for templating (and custom components), has AJAX support built in via the <f:ajax/> tag, and allows an easier way of configuring scopes of backing beans via annotations (e.g. @SessionScoped @ManagedBean). JSF also supports internationalization using message bundles. Bean Validation (also a Java specification, JSR-303) is also supported, and can allow for validation of your classes project wide – at the database level, service level, and frontend level – with a few annotations [disclaimer: I haven’t tried it yet :D]

For those new to JSF and Java in general, I might be posting a series of articles that will discuss how to create a basic web application, from scratch, that uses templating, internationalization, consistent validation, and has a layered architecture.

Stay tuned. For if I’m not too lazy, that might could turn into a will 😉