快速了解Shale:
Shale是一个基于JSF的web开发框架。Shale重用了大量的Struts基础代码,因此可以称Struts为它的"父"框架,但Shale是面向服务架构,它与Struts最大不同之处在于:Struts与JSF集成,而Shale则是建立在JSF之上。 Struts实质上是一个巨大的、复杂的请求处理器;而Shale则是一组可以以任何方式进行组合的服务。此外Shale加入了一些新的特性比如:
1.与Spring框架相集成可以使用Spring的依赖注入机制来创建JSF Managed bean。
2.提供一种可选的类似于Tapestry与Facelets使用纯HTML来定义视图。
3.提供测试框架,一组mock object和JUnit test case基类可以帮助测试自身框架的classe和在构建在该框架之上的应用组件。
4.提供AJAX的服务端支持。
5.Tiger扩展等。
Shale原汁原味:
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.
Feature:
The major features of the Shale Framework are described in the following detail sections:
- 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.
- Remoting - Server side support for applications that employ AJAX (Asynchronous JavaScript and XML) style interactions.
- 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").
Dependancy:
Shale is based on (and requires a runtime environment that supports) the following foundation technologies:
- Java Runtime Environment (JRE) 1.4 or later.
- Servlet API 2.4 or later.
- JavaServer Pages 2.0 or later.
- JavaServer Faces 1.1 or later.
- JSP Standard Tag Library (JSTL) 1.1 or later.
- Apache Commons BeanUtils 1.7 or later.
- Apache Commons Chain 1.1 or later.
- Apache Commons Digester 1.8 or later.
- Apache Commons Logging 1.1 or later.
Various optional Shale components have dependencies on the following additional runtime technologies:
- Apache Commons Validator 1.3.1 or later.
- Apache Commons SCXML 0.6 or later.
- Spring Framework 1.2.8 or later.
- Tiles 2 (the stand-alone version of Tiles, currently in the Struts Sandbox).
- Cargo
- jMock