This Restful action mapper enforces Ruby-On-Rails Rest-style mappings. If the method is not specified (via '!' or 'method:' prefix), the method is "guessed" at using ReST-style conventions that examine the URL and the HTTP method. Special care has been given to ensure this mapper works correctly with the codebehind plugin so that XML configuration is unnecessary.
This mapper supports the following parameters:
struts.mapper.idParameterName
- If set, this value will be the name of the parameter under which the id is stored. The id will then be removed from the action name. Whether or not the method is specified, the mapper will try to truncate the identifier from the url and store it as a parameter. struts.mapper.indexMethodName
- The method name to call for a GET request with no id parameter. Defaults to 'index'. struts.mapper.getMethodName
- The method name to call for a GET request with an id parameter. Defaults to 'show'. struts.mapper.postMethodName
- The method name to call for a POST request with no id parameter. Defaults to 'create'. struts.mapper.putMethodName
- The method name to call for a PUT request with an id parameter. Defaults to 'update'. struts.mapper.deleteMethodName
- The method name to call for a DELETE request with an id parameter. Defaults to 'destroy'. struts.mapper.editMethodName
- The method name to call for a GET request with an id parameter and the 'edit' view specified. Defaults to 'edit'. struts.mapper.newMethodName
- The method name to call for a GET request with no id parameter and the 'new' view specified. Defaults to 'editNew'.
The following URL's will invoke its methods:
GET: /movies => method="index"
GET: /movies/Thrillers => method="show", id="Thrillers"
GET: /movies/Thrillers;edit => method="edit", id="Thrillers"
GET: /movies/Thrillers/edit => method="edit", id="Thrillers"
GET: /movies/new => method="editNew"
POST: /movies => method="create"
PUT: /movies/Thrillers => method="update", id="Thrillers"
DELETE: /movies/Thrillers => method="destroy", id="Thrillers"
To simulate the HTTP methods PUT and DELETE, since they aren't supported by HTML, the HTTP parameter "_method" will be used.