The Semblance project is pleased to announce the release of Semblance 1.0 beta 2. This release addresses a Struts 1.3 compatiblity issue in the StrutsLive framework, and provides fixes for several defects, including a potential memory leak. The Semblance project is composed of three subprojects: the Foundation framework, StrutsLive, and a comprehensive example application. Version 1.0 provides Struts 1.x developers with a number of powerful capabilities that had previously been available only in advanced, component-based frameworks such as Tapestry. The new functionality piggy-backs on StrutsLive's existing feature set -- including automatic validation, formatting, bean population, error messaging, and field label highlighting -- to radically streamline Struts development. Here's an overview of some of the key new features in Semblance 1.0:
  • XHTML Component Templates. You can now use XHTML templates instead of or in addition to JSP for dynamic content. Simple markup allows binding Java object property values, iteration of any element or group of elements, conditional rendering for control of editability and visibility, validation and formatting settings, and more.
  • DynamicTypeCode and SelectionGroup. New classes automatically manage HTML select elements and options lists, and provide configurable sort orderings, label formats, filter settings, etc. Instances track current selections and obtain value lists lazily from pluggable services, and can be paired to automatically synchronize their values.
  • Dynamic Query Support. Automatically translates user-entered search criteria into a FetchSpecification that wraps objects used to generate a dynamic query or to perform in-memory filtering on a Collection.
  • XML Decoding. Deserializes arbitrarily complex graphs of Java objects from simple XML, automatically coercing string values to Java property types when necessary. Used by framework to parse XHTML templates, and in example app to 'fetch' objects from XML.
  • Full-Featured ListView. Automatically paginates lists of Java objects presented in tabular views, and implements full set of behaviors typically needed by the UI, including navigation, sorting, filtering, drill-down, managing selected rows, and even bulk modification.
  • Comprehensive Example Application. Seven separate examples fully illustrate usage of all the above as well as many other new features.
Please see the Semblance Project home page and the Semblance 1.0 Beta 2 release notes for further details.