layout: default title: Tag Developers Guide

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

{% comment %}start snippet id=tagattributes|struts2-tags/a.html {% endcomment %}

		<tr>

			<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> true</td>

		</tr>

		<tr>

			<td colspan="6">&nbsp;</td>

		</tr>

		<tr>

			<th align="left" valign="top"><h4>Name</h4></th>

			<th align="left" valign="top"><h4>Required</h4></th>

			<th align="left" valign="top"><h4>Default</h4></th>

			<th align="left" valign="top"><h4>Evaluated</h4></th>

			<th align="left" valign="top"><h4>Type</h4></th>

			<th align="left" valign="top"><h4>Description</h4></th>

		</tr>

			<tr>

				<td align="left" valign="top">accesskey</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">action</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The action to generate the URL for, if not using value</td>

			</tr>

			<tr>

				<td align="left" valign="top">anchor</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The anchor for this URL</td>

			</tr>

			<tr>

				<td align="left" valign="top">class</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The css class to use for element - it's an alias of cssClass attribute.</td>

			</tr>

			<tr>

				<td align="left" valign="top">cssClass</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The css class to use for element</td>

			</tr>

			<tr>

				<td align="left" valign="top">cssErrorClass</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The css error class to use for element</td>

			</tr>

			<tr>

				<td align="left" valign="top">cssErrorStyle</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The css error style definitions for element to use</td>

			</tr>

			<tr>

				<td align="left" valign="top">cssStyle</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The css style definitions for element to use</td>

			</tr>

			<tr>

				<td align="left" valign="top">disabled</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">encode</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">true</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">Boolean</td>

				<td align="left" valign="top">Whether to encode parameters</td>

			</tr>

			<tr>

				<td align="left" valign="top">errorPosition</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Define error position of form element (top|bottom)</td>

			</tr>

			<tr>

				<td align="left" valign="top">escapeAmp</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">true</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">Boolean</td>

				<td align="left" valign="top">Specifies whether to escape ampersand (&amp;) to (&amp;amp;) or not</td>

			</tr>

			<tr>

				<td align="left" valign="top">forceAddSchemeHostAndPort</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">Boolean</td>

				<td align="left" valign="top">Specifies whether to force the addition of scheme, host and port or not</td>

			</tr>

			<tr>

				<td align="left" valign="top">href</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The URL.</td>

			</tr>

			<tr>

				<td align="left" valign="top">id</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">HTML id attribute</td>

			</tr>

			<tr>

				<td align="left" valign="top">includeContext</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">true</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">Boolean</td>

				<td align="left" valign="top">Whether actual context should be included in URL</td>

			</tr>

			<tr>

				<td align="left" valign="top">includeParams</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">none</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The includeParams attribute may have the value 'none', 'get' or 'all'</td>

			</tr>

			<tr>

				<td align="left" valign="top">javascriptTooltip</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">Boolean</td>

				<td align="left" valign="top">Use JavaScript to generate tooltips</td>

			</tr>

			<tr>

				<td align="left" valign="top">key</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

			</tr>

			<tr>

				<td align="left" valign="top">label</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Label expression used for rendering an element specific label</td>

			</tr>

			<tr>

				<td align="left" valign="top">labelSeparator</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">:</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">String that will be appended to the label</td>

			</tr>

			<tr>

				<td align="left" valign="top">labelposition</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Define label position of form element (top/left)</td>

			</tr>

			<tr>

				<td align="left" valign="top">method</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The method of action to use</td>

			</tr>

			<tr>

				<td align="left" valign="top">name</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The name to set for element</td>

			</tr>

			<tr>

				<td align="left" valign="top">namespace</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The namespace to use</td>

			</tr>

			<tr>

				<td align="left" valign="top">onblur</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onchange</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onclick</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">ondblclick</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onfocus</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onkeydown</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onkeypress</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onkeyup</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onmousedown</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onmousemove</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onmouseout</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onmouseover</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onmouseup</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">onselect</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">openTemplate</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set template to use for opening the rendered html.</td>

			</tr>

			<tr>

				<td align="left" valign="top">portletMode</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The resulting portlet mode</td>

			</tr>

			<tr>

				<td align="left" valign="top">portletUrlType</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Specifies if this should be a portlet render or action URL. Default is "render". To create an action URL, use "action".</td>

			</tr>

			<tr>

				<td align="left" valign="top">requiredLabel</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">Boolean</td>

				<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

			</tr>

			<tr>

				<td align="left" valign="top">requiredPosition</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Define required position of required form element (left|right)</td>

			</tr>

			<tr>

				<td align="left" valign="top">scheme</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set scheme attribute</td>

			</tr>

			<tr>

				<td align="left" valign="top">style</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>

			</tr>

			<tr>

				<td align="left" valign="top">tabindex</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">template</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

			</tr>

			<tr>

				<td align="left" valign="top">templateDir</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The template directory.</td>

			</tr>

			<tr>

				<td align="left" valign="top">theme</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

			</tr>

			<tr>

				<td align="left" valign="top">title</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the html title attribute on rendered html element</td>

			</tr>

			<tr>

				<td align="left" valign="top">tooltip</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Set the tooltip of this particular component</td>

			</tr>

			<tr>

				<td align="left" valign="top">tooltipConfig</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>

			</tr>

			<tr>

				<td align="left" valign="top">tooltipCssClass</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">StrutsTTClassic</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>

			</tr>

			<tr>

				<td align="left" valign="top">tooltipDelay</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">Classic</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>

			</tr>

			<tr>

				<td align="left" valign="top">tooltipIconPath</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">Icon path used for image that will have the tooltip</td>

			</tr>

			<tr>

				<td align="left" valign="top">value</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The target value to use, if not using action</td>

			</tr>

			<tr>

				<td align="left" valign="top">windowState</td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top"></td>

				<td align="left" valign="top">false</td>

				<td align="left" valign="top">String</td>

				<td align="left" valign="top">The resulting portlet window state</td>

			</tr>

	</table>

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>