When a static URL is part of an incoming request, the SEO jump servlet parses the URL to extract parameter values, which it then uses to fill in placeholders in the dynamic URL it generates. To extract the parameter values, the servlet uses regular expression groups, which you specify using the indirectRegex property of the indirect URL component.

For example, suppose you have a URL format that looks like this:

urlTemplateFormat=/jump/product/{item.id}/{item.parentCategory.id}\
  /{item.displayName}/{item.parentCategory.displayName}

The regular expression pattern for this format might be specified like this:

indirectRegex=/jump/product/([^/].*?)/([^/].*?)/([^/].*?)/([^/].*?)$

This pattern tells the jump servlet how to extract the parameter values from a static URL. In addition, the servlet needs information about how to interpret the parameters. Some parameters may be simple String values, while others may represent the ID of a repository item. If the parameter is a repository item ID, the servlet needs to determine the item type and the repository that contains the item.

Therefore the indirect URL template also includes a regexElementList property for specifying each parameter type. This property is an ordered list where the first element specifies the parameter type of the first regular expression, the second element specifies the parameter type of the second regular expression, and so on.

The syntax for each parameter type entry in the list is:

paramName | paramType [| additionalInfo]

The paramName is used to match the parameter with placeholders in the direct URL that the servlet forwards the request to.

Valid values for paramType are:

The optional additionalInfo field can be used to specify additional details if paramType is id. (This field should be omitted if paramType is string.) The syntax of additionalInfo takes one of the following forms:

repositoryName:itemDescriptorName
itemDescriptorName

The parameter type list for the regular expression pattern shown above would look something like this:

item | id | /atg/commerce/catalog/ProductCatalog:product
parentCategory | id | /atg/commerce/catalog/ProductCatalog:category
displayName | string
parentCategoryDisplayName | string
 
loading table of contents...