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
  • No labels