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.
Calyxo applications may be separated into (more or less) independent
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.
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.