A Cocoon Sitemap component that manipulates runtime parameters based on the request and application state. The results of the manipulation are available to other site map components.
Actions are useful for:
performing simple work outside of an XSP (further separation of logic)
setting up pipelines of reusable actions (e.g. session/form validation)
dynamic navigation (named result params accessible to sitemap)
basic flow control (returning null means content isn't evaluated, making actions one of the CocoonConditionals)
Also seems very similar to the Model part of the standard Model 2 MVC set-up. In fact Generators (particularly XSP pages) can be used to fill the Model role for a particular request. Generators fit the role better however.
For a more apt MVC design, check out Flow Script (Flow or WhatIsFlow).
Declaring Actions
Actions are declared as follows:
<map:actions>
<map:action name="add-employee"
src="org.apache.cocoon.acting.DatabaseAddAction"/>
<map:action name="locale"
src="org.apache.cocoon.acting.LocaleAction"/>
<map:action name="request"
src="org.apache.cocoon.acting.RequestParamAction"/>
<map:action name="form-validator"
src="org.apache.cocoon.acting.FormValidatorAction"/>
</map:actions>
Built-in Actions
Cocoon has several built-in Actions
DatabaseActions : automatic insert, update, delete of data
ResourceExistsAction : Check to see if a resource exists. Useful for conditional pipeline processing.
The FormValidatorAction, see FormValidationUsingCocoon
DatabaseAuthenticationAction : can automatically authenticate a user
HttpHeaderAction: adds HTTP headers to the response
RequestParamAction: request parameters are made available to sitemap
SendMailAction: sends an email
Session* : various session related actions
XSPActions: allow write new Actions using XSP
...others