Calyxo has been designed to ease the development of JSP Model 2 applications. In a Model 2 application servlets take over the controller part and JSPs are used as view technology.

In particular, Calyxo has been designed to be used with controllers, that implement the Command and Controller strategy. This strategy builds on the Front Controller and Application Controller design patterns. The Front Controller, implemented as a servlet, acts as a centralized access point for incoming requests. It delegates to an Application Controller (module), which is responsible for identifying and invoking Command Objects (actions) and for identifying and dispatching to views.

However, the Calyxo Base component does not implement a controller. It just assumes a controller following the above strategy by introducing modules and actions in an abstract manner.

The Calyxo Base component factors out some of the fundamental patterns and services supported by the Calyxo framework, which are used by applications as well as throughout all the other components.

Application Modules

Calyxo applications may be separated into (more or less) independent modules.

It is central to modules as used by Calyxo, that they are basically containers for so called actions. Struts users will be familiar to the concept of actions. They are the entry points of a module: a module handles a request by selecting an action by its path, executing it and - depending on the action's result - dispatching to another action or resource.

Modularization is a proven strategy to break down complexity and to ease in team development. In pattern terminology, a module realizes the Application Controller pattern.

Powerful Configuration Capabilities

Calyxo components are configured by XML files, which all share common abilities, such as importing other configuration files, defining variables, using JSP EL expressions, storing objects, etc. This leads to high expressive configuration formats and unifies basic features across the platform, thus simplifying their use.

New Accessors Presentation Model

Traditionally, custom tags are used to access logic and data from within JSP pages. With the integration of the expression language (EL) into the JSP 2.0 standard, many custom tags have become obsolete. Consequent usage of EL expressions in combination with the Java Standard Tag Library (JSTL) may now lead to very nice JSP code. Calyxo supports this approach by providing so-called accessors, that present themselves as a hierarchy of beans and maps, ready to be used in EL expressions.

Calyxo's accessors realize the Presentation Model and View Helper design patterns.

Internationalization Support

In today's application development, i18n has become an important issue. Calyxo supports i18n from the ground up. Calyxo Base provides the basic pieces as a fundament to application localization. Other Calyxo components provide higher level features such as locale-dependent selection of views and forms.