Below we show how the sample from WoodySample can be done using actions. The sourcecode of these actions is included with the Cocoon source code:
MakeFormAction and HandleFormSubmitAction.
<map:match pattern="registration"> <map:select type="request-method"> <map:when test="GET"> <map:act type="woody-make-form"> <map:parameter name="form-definition" value="forms/registration.xml"/> <map:parameter name="attribute-name" value="registrationform"/> </map:act> </map:when> <map:otherwise> <map:act type="woody-handle-form-submit"> <map:parameter name="form-definition" value="forms/registration.xml"/> <map:parameter name="attribute-name" value="registrationform"/> <map:generate type="serverpages" src="forms/registration_success.xsp"/> <map:serialize/> </map:act> </map:otherwise> </map:select> <map:generate src="forms/registration_template.xml"/> <map:transform type="woody"> <map:parameter name="attribute-name" value="registrationform"/> </map:transform> <map:transform type="i18n"> <map:parameter name="locale" value="en-US"/> </map:transform> <map:transform src="resources/woody-samples-styling.xsl"/> <map:transform type="i18n"> <map:parameter name="locale" value="en-US"/> </map:transform> <map:serialize/> </map:match> |
Here's an example of what the XSP could look like.
<?xml version="1.0"?> <xsp:page language="java" xmlns:xsp="http://apache.org/xsp"> <xsp:structure> <xsp:include>org.apache.cocoon.woody.formmodel.*</xsp:include> </xsp:structure> <page> <title>Registration result</title> <content> <xsp:logic> // get reference to form and some of the widgets on it Form form = (Form)request.getAttribute("registrationform"); Field name = (Field)form.getWidget("name"); </xsp:logic> Registration was successful for <xsp:expr>name.getValue()</xsp:expr> </content> </page> </xsp:page> |