Introduction

The controller lies at the heart of a JSP Model 2 application. The Calyxo Control component provides a clean, module-aware implementation realizing the Front/Application Controller, Service To Worker and Intercepting Filter design patterns.

Calyxo Control versus Struts

Calyxo Control uses an approach similar to Struts, so Struts users should feel familiar with Calyxo Control right from the start. However, there are some major differences.

We won't make a detailed comparison to the Struts controller. It should be stated, that Calyxo Control has been designed as a relative to the Struts controller, while fixing some Struts design issues and adding some important new features:

  • Calyxo Control supports action filters. A filter chain may be attached to an action in its configuration. Action filters realize the Interception Filter design pattern.
  • Calyxo Control doesn't mix validation issues into the core configuration like Struts does. Instead, form validation is incorporated as an action filter.
  • Calyxo Control action commands implement an action interface rather than having to subclass from a base action class.
  • Calyxo Control supports the concept of dispatchers. A dispatcher is responsible for delegating to a view according to an action's result. E.g., you may use custom dispatchers to render different content types.
  • Calyxo Control uses one servlet per module. This way, selecting the module for an incoming request is left to the servlet container.

If you still want (or need) to use Struts as your controller, please refer to the Calyxo Struts component.