Package org.apache.struts2.rest
Class RestActionMapper
java.lang.Object
org.apache.struts2.dispatcher.mapper.DefaultActionMapper
org.apache.struts2.rest.RestActionMapper
- All Implemented Interfaces:
ActionMapper
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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
protected static final org.apache.logging.log4j.Logger
Fields inherited from class org.apache.struts2.dispatcher.mapper.DefaultActionMapper
ACTION_PREFIX, allowedActionNames, allowedMethodNames, allowedNamespaceNames, allowSlashesInActionNames, alwaysSelectFullNamespace, container, defaultActionName, defaultMethodName, defaultNamespaceName, extensions, METHOD_PREFIX, prefixTrie
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetMapping
(jakarta.servlet.http.HttpServletRequest request, ConfigurationManager configManager) protected boolean
isDelete
(jakarta.servlet.http.HttpServletRequest request) protected boolean
isExpectContinue
(jakarta.servlet.http.HttpServletRequest request) protected boolean
isGet
(jakarta.servlet.http.HttpServletRequest request) protected boolean
isOptions
(jakarta.servlet.http.HttpServletRequest request) protected boolean
isPost
(jakarta.servlet.http.HttpServletRequest request) protected boolean
isPut
(jakarta.servlet.http.HttpServletRequest request) protected void
parseNameAndNamespace
(String uri, ActionMapping mapping, ConfigurationManager configManager) Parses the name and namespace from the uri.void
setAllowDynamicMethodCalls
(String allowDynamicMethodCalls) void
setDeleteMethodName
(String deleteMethodName) void
setEditMethodName
(String editMethodName) void
setGetMethodName
(String getMethodName) void
setIdParameterName
(String idParameterName) void
setIndexMethodName
(String indexMethodName) void
setNewMethodName
(String newMethodName) void
setOptionsMethodName
(String optionsMethodName) void
setPostContinueMethodName
(String postContinueMethodName) void
setPostMethodName
(String postMethodName) void
setPutContinueMethodName
(String putContinueMethodName) void
setPutMethodName
(String putMethodName) Methods inherited from class org.apache.struts2.dispatcher.mapper.DefaultActionMapper
addParameterAction, cleanupActionName, cleanupMethodName, cleanupNamespaceName, dropExtension, extractMethodName, getDefaultExtension, getMappingFromActionName, getUriFromActionMapping, handleDynamicMethod, handleExtension, handleName, handleNamespace, handleParams, handleSpecialParameters, isSlashesInActionNames, lookupExtension, parseActionName, setAllowActionPrefix, setAllowedActionNames, setAllowedMethodNames, setAllowedNamespaceNames, setAlwaysSelectFullNamespace, setContainer, setDefaultActionName, setDefaultMethodName, setDefaultNamespaceName, setExtensions, setSlashesInActionNames
-
Field Details
-
LOG
protected static final org.apache.logging.log4j.Logger LOG -
HTTP_METHOD_PARAM
- See Also:
-
-
Constructor Details
-
RestActionMapper
public RestActionMapper()
-
-
Method Details
-
getIdParameterName
-
setIdParameterName
-
setIndexMethodName
-
setGetMethodName
-
setPostMethodName
-
setEditMethodName
-
setNewMethodName
-
setDeleteMethodName
-
setPutMethodName
-
setOptionsMethodName
-
setPostContinueMethodName
-
setPutContinueMethodName
-
setAllowDynamicMethodCalls
- Overrides:
setAllowDynamicMethodCalls
in classDefaultActionMapper
-
getMapping
public ActionMapping getMapping(jakarta.servlet.http.HttpServletRequest request, ConfigurationManager configManager) - Specified by:
getMapping
in interfaceActionMapper
- Overrides:
getMapping
in classDefaultActionMapper
-
parseNameAndNamespace
protected void parseNameAndNamespace(String uri, ActionMapping mapping, ConfigurationManager configManager) Parses the name and namespace from the uri. Uses the configured package namespaces to determine the name and id parameter, to be parsed later.- Overrides:
parseNameAndNamespace
in classDefaultActionMapper
- Parameters:
uri
- The urimapping
- The action mapping to populate
-
isGet
protected boolean isGet(jakarta.servlet.http.HttpServletRequest request) -
isPost
protected boolean isPost(jakarta.servlet.http.HttpServletRequest request) -
isPut
protected boolean isPut(jakarta.servlet.http.HttpServletRequest request) -
isDelete
protected boolean isDelete(jakarta.servlet.http.HttpServletRequest request) -
isOptions
protected boolean isOptions(jakarta.servlet.http.HttpServletRequest request) -
isExpectContinue
protected boolean isExpectContinue(jakarta.servlet.http.HttpServletRequest request)
-