a little Howto get the values of a form you just submitted

my form will be composed only with one field ; a select multiple ; to see how to get the choosen values.

the little piece of xsl :

<form action="fox.xml" method="post">
<fieldset><legend>Players</legend>
<select name="player_url_name" multiple="multiple">
<option value="Player1">The is the Player1</option><br/>
<option value="Player2">The is the Player2</option><br/>
<option value="Player3">The is the Player3</option><br/> </select>
</fieldset>
<fieldset><legend>Valid</legend
<input type="submit" value="ok" name="valid"/>
</fieldset>
</form>


the pipeline in the sitemap.xmap :


<map:match pattern="fox.xml">
<map:generate type="script" src="fox.groovy"/>
<map:serialize type="xml"/>
</map:match>


the groovy script fox.groovy :


import org.apache.cocoon.environment.ObjectModelHelper
import groovy.xml.SAXBuilder

// get the parameters from the form
objectModel = bsf.lookupBean("objectModel");
request = ObjectModelHelper.getRequest(objectModel);
player_url_name = request.getParameterValues("player_url_name");

// Create a Groovy Builder which writes directly to the Cocoon pipeline
contentHandler = bsf.lookupBean("contentHandler")
xml = new SAXBuilder(contentHandler)

// Builder does not seem to call this
contentHandler.startDocument()

xml.root() {
foxyz() {
// loop in the array and make my appropriate node
for ( i in player_url_name ) {
player("${i}")
}
}
}
contentHandler.endDocument()


the generating xml output after choosing all the players :


<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<foxyz>
<player>Player1</player>
<player>Player2</player>
<player>Player3</player>
</foxyz>
</root>


Thanks to Bertrand Delacretaz for his help about bsf.lookupBean
- olivier demah -