Edit on GitHub

# a

Please make sure you have read the Tag Syntax document and understand how tag attribute syntax works.

## Description

A tag that creates a HTML `<a>.` This tag supports the same attributes as the `url` tag, including nested parameters using the `param` tag.

> While this tag can be used with the simple theme, xhtml theme, and others, it is really designed to work best with the ajax theme. We recommend reading the ajax a template documentation for more details.

## Parameters

#### Dynamic Attributes Allowed: true
#### Name | #### Required | #### Default | #### Evaluated | #### Type | #### Description
--- | --- | --- | --- | --- | ---
accesskey | false |  | false | String | Set the html accesskey attribute on rendered html element
action | false |  | false | String | The action to generate the URL for, if not using value
anchor | false |  | false | String | The anchor for this URL
class | false |  | false | String | The css class to use for element - it's an alias of cssClass attribute.
cssClass | false |  | false | String | The css class to use for element
cssErrorClass | false |  | false | String | The css error class to use for element
cssErrorStyle | false |  | false | String | The css error style definitions for element to use
cssStyle | false |  | false | String | The css style definitions for element to use
disabled | false |  | false | String | Set the html disabled attribute on rendered html element
encode | false | true | false | Boolean | Whether to encode parameters
errorPosition | false |  | false | String | Define error position of form element (top|bottom)
escapeAmp | false | true | false | Boolean | Specifies whether to escape ampersand (&) to (&amp;) or not
forceAddSchemeHostAndPort | false | false | false | Boolean | Specifies whether to force the addition of scheme, host and port or not
href | false |  | false | String | The URL.
id | false |  | false | String | HTML id attribute
includeContext | false | true | false | Boolean | Whether actual context should be included in URL
includeParams | false | none | false | String | The includeParams attribute may have the value 'none', 'get' or 'all'
javascriptTooltip | false | false | false | Boolean | Use JavaScript to generate tooltips
key | false |  | false | String | Set the key (name, value, label) for this particular component
label | false |  | false | String | Label expression used for rendering an element specific label
labelSeparator | false | : | false | String | String that will be appended to the label
labelposition | false |  | false | String | Define label position of form element (top/left)
method | false |  | false | String | The method of action to use
name | false |  | false | String | The name to set for element
namespace | false |  | false | String | The namespace to use
onblur | false |  | false | String | Set the html onblur attribute on rendered html element
onchange | false |  | false | String | Set the html onchange attribute on rendered html element
onclick | false |  | false | String | Set the html onclick attribute on rendered html element
ondblclick | false |  | false | String | Set the html ondblclick attribute on rendered html element
onfocus | false |  | false | String | Set the html onfocus attribute on rendered html element
onkeydown | false |  | false | String | Set the html onkeydown attribute on rendered html element
onkeypress | false |  | false | String | Set the html onkeypress attribute on rendered html element
onkeyup | false |  | false | String | Set the html onkeyup attribute on rendered html element
onmousedown | false |  | false | String | Set the html onmousedown attribute on rendered html element
onmousemove | false |  | false | String | Set the html onmousemove attribute on rendered html element
onmouseout | false |  | false | String | Set the html onmouseout attribute on rendered html element
onmouseover | false |  | false | String | Set the html onmouseover attribute on rendered html element
onmouseup | false |  | false | String | Set the html onmouseup attribute on rendered html element
onselect | false |  | false | String | Set the html onselect attribute on rendered html element
openTemplate | false |  | false | String | Set template to use for opening the rendered html.
portletMode | false |  | false | String | The resulting portlet mode
portletUrlType | false |  | false | String | Specifies if this should be a portlet render or action URL. Default is "render". To create an action URL, use "action".
requiredLabel | false | false | false | Boolean | If set to true, the rendered element will indicate that input is required
requiredPosition | false |  | false | String | Define required position of required form element (left|right)
scheme | false |  | false | String | Set scheme attribute
style | false |  | false | String | The css style definitions for element to use - it's an alias of cssStyle attribute.
tabindex | false |  | false | String | Set the html tabindex attribute on rendered html element
template | false |  | false | String | The template (other than default) to use for rendering the element
templateDir | false |  | false | String | The template directory.
theme | false |  | false | String | The theme (other than default) to use for rendering the element
title | false |  | false | String | Set the html title attribute on rendered html element
tooltip | false |  | false | String | Set the tooltip of this particular component
tooltipConfig | false |  | false | String | Deprecated. Use individual tooltip configuration attributes instead.
tooltipCssClass | false | StrutsTTClassic | false | String | CSS class applied to JavaScrip tooltips
tooltipDelay | false | Classic | false | String | Delay in milliseconds, before showing JavaScript tooltips
tooltipIconPath | false |  | false | String | Icon path used for image that will have the tooltip
value | false |  | false | String | The target value to use, if not using action
windowState | false |  | false | String | The resulting portlet window state

## Usage

To get started, use the head tag and the ajax theme. See ajax head template
for more information. Then look at the usage details for the ajax a template .

If you want to use additional parameters in your `s:a` the best practice is to use a `s:url` to create your url and then leverage this url into your `s:a` tag. This is done by creating a `s:url` and specifying an `var` attribute. Like `testUrlId` in this example. Then in the `s:a` tag reference this id in the href attribute via `%{testUrlId}`

    <s:url var="testUrlId" namespace="/subscriber" action="customField" method="delete">
        <s:param name="customFieldDefinition.id" value="${id}"/>
    </s:url>

    <s:a errorText="Sorry your request had an error." preInvokeJS="confirm('Are you sure you want to delete this item?')" href="%{testUrlId}">
        <img src="<s:url value="/images/delete.gif"/>" border="none"/>
    </s:a>

    <img xsrc="<s:url value="/images/delete.gif"/>" border="none"/>

    <s:a><img xsrc="<s:url value="/images/delete.gif"/>" border="none"/></s:a>