Michael is the lead developer on the Expresso project, an open source framework for building data driven applications on top of Struts. From the web site: Expresso adds capabilities for security, robust object-relational mapping, background job handling and scheduling, self-tests, logging integration, automated table manipulation, database connection pooling, email connectivity, event notification, error handling, caching, internationalization, XML automation, testing, registration objects, configuration management, workflow, automatic database maintenance and JSP tag library etc. Expresso is a significant extension to Struts and demonstrates the ability of Struts to serve as the foundation for other, significant frameworks.
Craig is giving a case study on Struts and XML. While most Struts applications generate HTML, Struts can be used to generate XML. The resulting XML can be used by another machine or translated into HTML or some other mark-up for the client device. There's more information on the Jakarta website on packages for doing this.
JavaServer Faces is a serve-side user interface component framework for Java-based web applications. The goal is to reach out to corporate developers who are more comfortable with VB or other scripting languages and to provide tools for supporting GUI creation. JavaServer faces features an extensible UI component model, a flexible rendering model, and even and listener framework, a validation framework, basic page navigation support, and internationalization and accessibility. JavaServer Faces does a lot of what Struts does, but that doesn't mean that JavaServer Faces will replace Struts. They can be used together. A Struts developer can use Struts and things built on it like Expresso and still take advantage of the rich GUI environment that JavaServer Faces provides.