JavaServer Faces (JSF) is a framework for building web-based user interfaces in Java. Like Swing, it provides a set of standard widgets (buttons, hyperlinks, checkboxes, and so on), a model for creating custom widgets, a way to process client-generated events (like changing the value of a text box or clicking on a button), and excellent tool support. Since web-based applications, unlike their Swing cousins, must often appease multiple clients (desktop browsers, phones, PDAs, and so on), JSF has a powerful architecture for displaying components in different ways. It also has extensible facilities for validating input (like the length of a field) and converting objects to and from strings for display. Faces can also automatically keep your user interface components in sync with your business model objects. JSF includes a powerful controller, and will support tools to enable RAD. JSF is the way to go in a post-Struts context. There's a kick ass RAD tool that supports JSF : Sun's Java Studio Creator. Craig McClanahan, author of Struts, contributor to JSF and Java Studio Creator once said an experienced developer with Creator may be up to 8 times more productive than a struts user.