WebSphere Commerce Version 7.0.0.0

Tag: url

The wcf:url tag builds a URL and applies the appropriate WebSphere Commerce supported rewriting rules.
The wcf:url tag contains the following additions in comparison to the c:url tag:
  • The wcf:url tag builds SEO-compliant URLs if SEO is enabled for WebSphere Commerce.
  • The tag adds a prefix to the URL with the appropriate protocol, HTTP or HTTPS, depending on the Struts configuration files.
  • By default, the tag builds a full path URL, rather than a relative path.
    Note: To enable the URL to build a relative path instead, you must complete the following tasks:
    1. Feature Pack 6Feature Pack 3Feature Pack 5Feature Pack 2Feature Pack 4Feature Pack 1Install the interim fix JR46450.
    2. Add the following line to the instance.xml file, as a direct child to the <config> node:
      <UrlTagConfiguration useRelativePath="true" />
      <SEOConfiguration defaultUrl="" dynamicURL="true" enable="true" constructUrlWithoutHost = "true"/>

Tag information

Tag information
Body Content empty

Attributes

Attributes

Attribute Required Request-time Type Description
var false true java.lang.String The name of the exported scoped variable for the processed URL.
value true
Introduced in Feature Pack 3
  • true for workspaces
  • false for all other cases
true java.lang.String The URL to process or the mapped name that is used in the SEOUrlMapper.xml file.
patternName false true java.lang.String The pattern name that is defined within the pattern template files. This pattern is used to construct the SEO URL. The value can be equal to the name attribute of the patterns that are defined for the store.
context false true java.lang.String The name of the context when you specify a relative URL resource that belongs to a foreign context.
scope false true java.lang.String The scope for the variable that is specified by var.
type false true java.lang.String Specifies whether the current URL is used in an Ajax call. Valid type values are Ajax or Base. The default value is Base. If the type value is Ajax, the scheme for the URL is taken from the current request, rather than from the Struts configuration file.
Introduced in Feature Pack 3Note: Either the value or patternName attribute is required. If workspaces are used, both the value and patternName are required. If the value attribute is provided, URLs are constructed based on the mapping found in the SEOUrlMapper.xml file by using the SEO implementation from WebSphere Commerce Version 7 to Version 7 Feature Pack 2. If the patternName attribute is provided and SEO is enabled in the wc-server.xml file as shown in the following example, URLs are constructed based on the Version 7 Feature Pack 3 SEO design by using the pattern template definitions. Preference is given to the patternName attribute over the value attribute when both attributes are specified.
<SEOConfiguration enable="true" dynamicUrl="true" defaultUrl="www.madisons.com">
  <context-root-rewrite value="/shop"/>
  <mapper-class-name value="com.ibm.commerce.seo.url.helpers.SEOURLMapperImpl"/>
</SEOConfiguration>
If URL construction by using the patternName attribute fails (as a result of an invalid patternName or a missing parameter), dynamic URLs are constructed when the dynamicUrl attribute is set to true. If the dynamicUrl attribute is set to false, then wcf:url tag returns the defaultUrl value that is specified in the wc-server.xml file.

The URL creation order is:

  1. If SEO is enabled and the patternName attribute is specified, the patternName attribute and construct a new SEO URL
    1. If a new SEO URL construction fails and dynamicUrl = true, a dynamic URL is constructed.
    2. If dynamicUrl = false, a defaultUrl is constructed
  2. Otherwise, the value attribute is used and an older style SEO URL is constructed.

Variables

No variables are defined for the wcf:url tag.

Example

The following example forms a URL to display the shopping cart by using the wcf:url tag. It specifies the URL type as an Ajax call.

<wcf:url var="currentShoppingCartLink" value="ShopCartPageView" type="Ajax">
   <wcf:param name="storeId" value="${WCParam.storeId}"  />
   <wcf:param name="catalogId" value="${WCParam.catalogId}" />
   <wcf:param name="langId" value="${WCParam.langId}" />
</wcf:url>