public class RegexUrlMapping extends AbstractUrlMapping
A UrlMapping implementation that takes a Grails URL pattern and turns it into a regex matcher so that URLs can be matched and information captured from the match.
A Grails URL pattern is not a regex, but is an extension to the form defined by Apache Ant and used by Spring AntPathMatcher. Unlike regular Ant paths Grails URL patterns allow for capturing groups in the form:
/blog/(*)/**
The parenthesis define a capturing group. This implementation transforms regular Ant paths into regular expressions that are able to use capturing groups
AntPathMatcher| Modifier and Type | Field and Description |
|---|---|
static java.util.regex.Pattern |
DOUBLE_WILDCARD_PATTERN |
static java.util.regex.Pattern |
OPTIONAL_EXTENSION_WILDCARD_PATTERN |
actionName, constraints, controllerName, forwardURI, httpMethod, mappingName, namespace, parameterValues, parseRequest, pluginName, redirectInfo, restful, servletContext, version, viewNameACTION, AMPERSAND, ANY_HTTP_METHOD, ANY_VERSION, CAPTURED_DOUBLE_WILDCARD, CAPTURED_WILDCARD, CONTROLLER, DOUBLE_WILDCARD, HTTP_METHOD, NAMESPACE, OPTIONAL_EXTENSION_WILDCARD, PLUGIN, QUESTION_MARK, REDIRECT_INFO, SLASH, URI, VERSION, WILDCARD| Constructor and Description |
|---|
RegexUrlMapping(java.lang.Object redirectInfo,
UrlMappingData data,
java.lang.Object controllerName,
java.lang.Object actionName,
java.lang.Object namespace,
java.lang.Object pluginName,
java.lang.Object viewName,
java.lang.String httpMethod,
java.lang.String version,
org.codehaus.groovy.grails.validation.ConstrainedProperty[] constraints,
javax.servlet.ServletContext servletContext)
Constructs a new RegexUrlMapping for the given pattern, controller name, action name and constraints.
|
RegexUrlMapping(UrlMappingData data,
java.lang.Object controllerName,
java.lang.Object actionName,
java.lang.Object namespace,
java.lang.Object pluginName,
java.lang.Object viewName,
java.lang.String httpMethod,
java.lang.String version,
org.codehaus.groovy.grails.validation.ConstrainedProperty[] constraints,
javax.servlet.ServletContext servletContext) |
RegexUrlMapping(UrlMappingData data,
java.net.URI uri,
org.codehaus.groovy.grails.validation.ConstrainedProperty[] constraints,
javax.servlet.ServletContext servletContext)
Constructs a new RegexUrlMapping for the given pattern that maps to the specified URI
|
| Modifier and Type | Method and Description |
|---|---|
int |
compareTo(java.lang.Object o)
Compares this UrlMapping instance with the specified UrlMapping instance and deals with URL mapping precedence rules.
|
protected java.util.regex.Pattern |
convertToRegex(java.lang.String url)
Converts a Grails URL provides via the UrlMappingData interface to a regular expression.
|
java.lang.String |
createRelativeURL(java.lang.String controller,
java.lang.String action,
java.util.Map paramValues,
java.lang.String encoding)
Creates a URL for the given parameters values, controller and action names without the context path information
|
java.lang.String |
createRelativeURL(java.lang.String controller,
java.lang.String action,
java.util.Map paramValues,
java.lang.String encoding,
java.lang.String fragment)
Creates a URL for the given parameters values, controller and action names without the context path information
|
java.lang.String |
createRelativeURL(java.lang.String controller,
java.lang.String action,
java.lang.String pluginName,
java.util.Map paramValues,
java.lang.String encoding)
Creates a URL for the given parameters values, controller and action names without the context path information
|
java.lang.String |
createRelativeURL(java.lang.String controller,
java.lang.String action,
java.lang.String namespace,
java.lang.String pluginName,
java.util.Map paramValues,
java.lang.String encoding)
Creates a URL for the given parameters values, controller and action names without the context path information
|
java.lang.String |
createRelativeURL(java.lang.String controller,
java.lang.String action,
java.lang.String namespace,
java.lang.String pluginName,
java.util.Map paramValues,
java.lang.String encoding,
java.lang.String fragment)
Creates a URL for the given parameters values, controller and action names without the context path information
|
java.lang.String |
createURL(java.util.Map paramValues,
java.lang.String encoding)
Creates a URL for the given parameter values
|
java.lang.String |
createURL(java.util.Map paramValues,
java.lang.String encoding,
java.lang.String fragment)
Creates a URL for the given parameter values
|
java.lang.String |
createURL(java.lang.String controller,
java.lang.String action,
java.util.Map paramValues,
java.lang.String encoding)
Creates a URL for the given parameters values, controller and action names
|
java.lang.String |
createURL(java.lang.String controller,
java.lang.String action,
java.util.Map paramValues,
java.lang.String encoding,
java.lang.String fragment)
Creates a URL for the given parameters values, controller and action names
|
java.lang.String |
createURL(java.lang.String controller,
java.lang.String action,
java.lang.String pluginName,
java.util.Map parameterValues,
java.lang.String encoding)
Creates a URL for the given parameters values, controller and action names
|
java.lang.String |
createURL(java.lang.String controller,
java.lang.String action,
java.lang.String namespace,
java.lang.String pluginName,
java.util.Map paramValues,
java.lang.String encoding)
Creates a URL for the given parameters values, controller and action names
|
java.lang.String |
createURL(java.lang.String controller,
java.lang.String action,
java.lang.String namespace,
java.lang.String pluginName,
java.util.Map paramValues,
java.lang.String encoding,
java.lang.String fragment)
Creates a URL for the given parameters values, controller and action names
|
protected java.lang.String |
encode(java.lang.String s,
java.lang.String encoding) |
java.lang.String[] |
getLogicalMappings() |
UrlMappingData |
getUrlData()
Retrieves the UrlMappingData instance that describes this UrlMapping
|
UrlMappingInfo |
match(java.lang.String uri)
Matches the given URI and returns a DefaultUrlMappingInfo instance or null
|
java.lang.String |
toString() |
getActionName, getConstraints, getControllerName, getHttpMethod, getMappingName, getNamespace, getPluginName, getRedirectInfo, getVersion, getViewName, hasRuntimeVariable, isRestfulMapping, setMappingName, setParameterValues, setParseRequest, setRestfulMappingpublic static final java.util.regex.Pattern DOUBLE_WILDCARD_PATTERN
public static final java.util.regex.Pattern OPTIONAL_EXTENSION_WILDCARD_PATTERN
public RegexUrlMapping(UrlMappingData data, java.net.URI uri, org.codehaus.groovy.grails.validation.ConstrainedProperty[] constraints, javax.servlet.ServletContext servletContext)
data - The patternuri - The URIconstraints - Any constraints etc.servletContext - The servlet contextpublic RegexUrlMapping(UrlMappingData data, java.lang.Object controllerName, java.lang.Object actionName, java.lang.Object namespace, java.lang.Object pluginName, java.lang.Object viewName, java.lang.String httpMethod, java.lang.String version, org.codehaus.groovy.grails.validation.ConstrainedProperty[] constraints, javax.servlet.ServletContext servletContext)
public RegexUrlMapping(java.lang.Object redirectInfo,
UrlMappingData data,
java.lang.Object controllerName,
java.lang.Object actionName,
java.lang.Object namespace,
java.lang.Object pluginName,
java.lang.Object viewName,
java.lang.String httpMethod,
java.lang.String version,
org.codehaus.groovy.grails.validation.ConstrainedProperty[] constraints,
javax.servlet.ServletContext servletContext)
data - An instance of the UrlMappingData class that holds necessary information of the URL mappingcontrollerName - The name of the controller the URL maps to (required)actionName - The name of the action the URL maps tonamespace - The controller namespacepluginName - The name of the plugin which provided the controllerviewName - The name of the view as an alternative to the name of the action. If the action is specified it takes precedence over the view name during mappinghttpMethod - The http methodversion - The versionconstraints - A list of ConstrainedProperty instances that relate to tokens in the URLservletContext - ConstrainedPropertyprotected java.util.regex.Pattern convertToRegex(java.lang.String url)
url - The URL to convertpublic UrlMappingInfo match(java.lang.String uri)
uri - The URI to matchUrlMappingInfopublic java.lang.String createURL(java.util.Map paramValues,
java.lang.String encoding)
UrlCreatorparamValues - The parameter valuesencoding - The encoding to use for parametersUrlMappingprotected java.lang.String encode(java.lang.String s,
java.lang.String encoding)
throws java.io.UnsupportedEncodingException
java.io.UnsupportedEncodingExceptionpublic java.lang.String createURL(java.util.Map paramValues,
java.lang.String encoding,
java.lang.String fragment)
UrlCreatorparamValues - The parameter valuesencoding - The encoding to use for parametersfragment - The URL fragment to be appended to the URL following a #public java.lang.String createURL(java.lang.String controller,
java.lang.String action,
java.util.Map paramValues,
java.lang.String encoding)
UrlCreatorcontroller - The controller nameaction - The action nameparamValues - The parameter valuesencoding - The encoding to use for parameterspublic java.lang.String createURL(java.lang.String controller,
java.lang.String action,
java.lang.String pluginName,
java.util.Map parameterValues,
java.lang.String encoding)
UrlCreatorcontroller - The controller nameaction - The action namepluginName - The name of the plugin which provides the controllerparameterValues - The parameter valuesencoding - The encoding to use for parameterspublic java.lang.String createURL(java.lang.String controller,
java.lang.String action,
java.lang.String namespace,
java.lang.String pluginName,
java.util.Map paramValues,
java.lang.String encoding)
UrlCreatorcontroller - The controller nameaction - The action namenamespace - The controller namespacepluginName - The name of the plugin which provides the controllerparamValues - The parameter valuesencoding - The encoding to use for parameterspublic java.lang.String createRelativeURL(java.lang.String controller,
java.lang.String action,
java.util.Map paramValues,
java.lang.String encoding)
UrlCreatorcontroller - The controller nameaction - The action nameparamValues - The parameter valuesencoding - The encoding to use for parameterspublic java.lang.String createRelativeURL(java.lang.String controller,
java.lang.String action,
java.lang.String pluginName,
java.util.Map paramValues,
java.lang.String encoding)
UrlCreatorcontroller - The controller nameaction - The action namepluginName - The name of the plugin which provides the controllerparamValues - The parameter valuesencoding - The encoding to use for parameterspublic java.lang.String createRelativeURL(java.lang.String controller,
java.lang.String action,
java.lang.String namespace,
java.lang.String pluginName,
java.util.Map paramValues,
java.lang.String encoding)
UrlCreatorcontroller - The controller nameaction - The action namenamespace - The controller namespacepluginName - The name of the plugin which provides the controllerparamValues - The parameter valuesencoding - The encoding to use for parameterspublic java.lang.String createRelativeURL(java.lang.String controller,
java.lang.String action,
java.util.Map paramValues,
java.lang.String encoding,
java.lang.String fragment)
UrlCreatorcontroller - The controller nameaction - The action nameparamValues - The parameter valuesencoding - The encoding to use for parametersfragment - The fragment to append to the endpublic java.lang.String createRelativeURL(java.lang.String controller,
java.lang.String action,
java.lang.String namespace,
java.lang.String pluginName,
java.util.Map paramValues,
java.lang.String encoding,
java.lang.String fragment)
UrlCreatorcontroller - The controller nameaction - The action namenamespace - The controller namespacepluginName - The name of the plugin which provides the controllerparamValues - The parameter valuesencoding - The encoding to use for parametersfragment - The fragment to append to the endpublic java.lang.String createURL(java.lang.String controller,
java.lang.String action,
java.util.Map paramValues,
java.lang.String encoding,
java.lang.String fragment)
UrlCreatorcontroller - The controller nameaction - The action nameparamValues - The parameter valuesencoding - The encoding to use for parametersfragment - The URL fragment to be appended to the URL following a #public java.lang.String createURL(java.lang.String controller,
java.lang.String action,
java.lang.String namespace,
java.lang.String pluginName,
java.util.Map paramValues,
java.lang.String encoding,
java.lang.String fragment)
UrlCreatorcontroller - The controller nameaction - The action namenamespace - The controller namespacepluginName - The name of the plugin which provides the controllerparamValues - The parameter valuesencoding - The encoding to use for parametersfragment - The URL fragment to be appended to the URL following a #public UrlMappingData getUrlData()
UrlMappingpublic java.lang.String[] getLogicalMappings()
public int compareTo(java.lang.Object o)
o - An instance of the UrlMapping interfacepublic java.lang.String toString()
toString in class java.lang.Object