|您可以在Wikipedia上了解到此条目的英文信息 Apache Shale Thanks, Wikipedia.|
Shale is a modern web application framework, fundamentally based on JavaServer Faces. Architecturally, Shale is a set of loosely coupled services that can be combined as needed to meet particular application requirements. Shale provides additional functionality such as application event callbacks, dialogs with conversation-scoped state, a view technology called Clay, annotation-based functionality to reduce configuration requirements and support for remoting. Shale also provides integration links for other frameworks, to ease development when combinations of technologies are required.
- View Controller - Convenient mechanism to associate a "backing" Java class with each JavaServer Faces view in an application, with predefined event handers for events significant to an application developer.
- Dialog Manager - Mechanism to define a "conversation" with a user that requires multiple HTTP requests to implement, modeled as a state diagram.
- Application Manager - Traditional application wide front controller features that should be applied to every request.
- Validation - Integration with the Jakarta Commons Validator Framework, supporting both client side and server side validations based on a single set of configured validation rules.
- Spring Integration - Integration with the Spring Framework, allowing the use of Spring's dependency injection framework to create JavaServer Faces managed beans.
- Clay - An alternative to JSP where you define views in pure HTML, in a fashion similar to Tapestry and Facelets. An innovative sub-framework for supporting the configuration of reusable subtrees of JavaServer Faces components for customizable reuse.
- Test Framework - Set of mock objects and JUnit test case base classes suitable for testing both the framework classes themselves, as well as application components built on top of the framework.
- Tiger Extensions - Optional add-on library that adds additional ease-of-use features for Shale applications that run on Java Standard Edition 5 (popularly known by its code name during development, "tiger").
Shale是一个基于JSF的web开发框架.Shale重用了大量的Struts基础代码, 因此可以称Struts为它的"父"框架, 但Shale是面向服务架构, 它与Struts最大不同之处在于: Struts与JSF集成, 而Shale则是建立在JSF之上. Struts实质上是一个巨大的、复杂的请求处理器; 而Shale则是一组可以以任何方式进行组合的服务. 此外Shale加入了一些新的特性比如：
- 与Spring框架相集成可以使用Spring的依赖注入机制来创建JSF Managed bean。
- 提供测试框架,一组mock object和JUnit test case基类可以帮助测试自身框架的classe和在构建在该框架之上的应用组件。