org.apache.struts2.components

## Class Anchor

- java.lang.Object
- - org.apache.struts2.components.Component
  - - org.apache.struts2.components.UIBean
    - - org.apache.struts2.components.ClosingUIBean
      - - org.apache.struts2.components.Anchor

-     public class Anchor
      extends ClosingUIBean

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

  Examples

       <s:a id="link1" href="/do-it.action">
           <img border="none" src="<%=request.getContextPath()%>/images/delete.gif"/>
           <s:param name="id" value="1"/>
       </s:a>

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `COMPONENT_NAME`
    `protected String` | `href`
    `static String` | `OPEN_TEMPLATE`
    `protected boolean` | `processingTagBody`
    `static String` | `TEMPLATE`
    `protected Map` | `urlParameters`
    `protected UrlProvider` | `urlProvider`
    `protected UrlRenderer` | `urlRenderer`

    - ### Fields inherited from class org.apache.struts2.components.UIBean

      `accesskey, ATTR_FIELD_VALUE, ATTR_NAME_VALUE, ATTR_VALUE, cspNonceReader, cssClass, cssErrorClass, cssErrorStyle, cssStyle, defaultTemplateDir, defaultUITheme, disabled, dynamicAttributes, errorPosition, id, javascriptTooltip, key, label, labelPosition, labelSeparator, name, onblur, onchange, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup, onselect, request, requiredLabel, requiredPosition, response, tabindex, template, templateDir, templateEngineManager, templateSuffix, theme, title, tooltip, tooltipConfig, tooltipCssClass, tooltipDelay, tooltipIconPath, uiStaticContentPath, uiThemeExpansionToken, value`

    - ### Fields inherited from class org.apache.struts2.components.Component

      `actionMapper, COMPONENT_STACK, devMode, escapeHtmlBody, parameters, performClearTagStateForTagPoolingServers, stack, standardAttributesMap, throwExceptionOnELFailure`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Anchor(ValueStack stack, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAllParameters(Map params)` Adds all the given parameters to this component's own parameters.
    `void` | `addParameter(String key, Object value)` Adds the given key and value to this component's own parameter.
    `boolean` | `end(Writer writer, String body)` Overrides to be able to render body in a template rather than always before the template
    `protected void` | `evaluateExtraParams()`
    `String` | `getDefaultOpenTemplate()`
    `protected String` | `getDefaultTemplate()` A contract that requires each concrete UI Tag to specify which template should be used as a default.
    `UrlProvider` | `getUrlProvider()`
    `void` | `setAction(String action)`
    `void` | `setAnchor(String anchor)`
    `void` | `setEncode(boolean encode)`
    `void` | `setEscapeAmp(boolean escapeAmp)`
    `void` | `setEscapeHtmlBody(boolean escapeHtmlBody)`
    `void` | `setExtraParameterProvider(ExtraParameterProvider provider)`
    `void` | `setForceAddSchemeHostAndPort(boolean forceAddSchemeHostAndPort)`
    `void` | `setHref(String href)`
    `void` | `setIncludeContext(boolean includeContext)`
    `void` | `setIncludeParams(String includeParams)`
    `void` | `setMethod(String method)`
    `void` | `setNamespace(String namespace)`
    `void` | `setPortletMode(String portletMode)`
    `void` | `setPortletUrlType(String portletUrlType)`
    `void` | `setScheme(String scheme)`
    `void` | `setUrlIncludeParams(String urlIncludeParams)`
    `void` | `setUrlRenderer(UrlRenderer urlRenderer)`
    `void` | `setValue(String value)`
    `void` | `setWindowState(String windowState)`
    `boolean` | `start(Writer writer)` Callback for the start tag of this component.
    `boolean` | `usesBody()` Overwrite to set if body should be used.

    - ### Methods inherited from class org.apache.struts2.components.ClosingUIBean

      `setOpenTemplate`

    - ### Methods inherited from class org.apache.struts2.components.UIBean

      `addFormParameter, applyValueParameter, buildTemplateName, copyParams, enableAncestorFormCustomOnsubmit, ensureAttributeSafelyNotEscaped, escape, evaluateNameValue, evaluateParams, getId, getTemplate, getTemplateDir, getTheme, getTooltipConfig, getValueClassType, lazyEvaluation, mergeTemplate, populateComponentHtmlId, setAccesskey, setCspNonceReader, setCssClass, setCssErrorClass, setCssErrorStyle, setCssStyle, setDefaultTemplateDir, setDefaultUITheme, setDisabled, setDynamicAttributes, setErrorPosition, setId, setJavascriptTooltip, setKey, setLabel, setLabelPosition, setLabelSeparator, setName, setOnblur, setOnchange, setOnclick, setOndblclick, setOnfocus, setOnkeydown, setOnkeypress, setOnkeyup, setOnmousedown, setOnmousemove, setOnmouseout, setOnmouseover, setOnmouseup, setOnselect, setRequiredLabel, setRequiredPosition, setStaticContentPath, setStyle, setTabindex, setTemplate, setTemplateDir, setTemplateEngineManager, setTheme, setTitle, setTooltip, setTooltipConfig, setTooltipCssClass, setTooltipDelay, setTooltipIconPath, setUIThemeExpansionToken`

    - ### Methods inherited from class org.apache.struts2.components.Component

      `clearStandardAttributesMap, completeExpression, determineActionURL, determineNamespace, end, escapeHtmlBody, fieldError, findAncestor, findString, findString, findValue, findValue, findValue, getAttributes, getComponentStack, getNamespace, getParameters, getPerformClearTagStateForTagPoolingServers, getStack, getStandardAttributes, isAcceptableExpression, isValidTagAttribute, popComponentStack, setActionMapper, setDevMode, setEscapeHtmlBody, setNotExcludedAcceptedPatterns, setPerformClearTagStateForTagPoolingServers, setThrowExceptionsOnELFailure, setUrlHelper, stripExpression, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### OPEN_TEMPLATE

          public static final String OPEN_TEMPLATE

      See Also:
        Constant Field Values

    - #### TEMPLATE

          public static final String TEMPLATE

      See Also:
        Constant Field Values

    - #### COMPONENT_NAME

          public static final String COMPONENT_NAME

    - #### href

          protected String href

    - #### urlProvider

          protected UrlProvider urlProvider

    - #### urlRenderer

          protected UrlRenderer urlRenderer

    - #### processingTagBody

          protected boolean processingTagBody

    - #### urlParameters

          protected Map urlParameters

  - ### Constructor Detail

    - #### Anchor

          public Anchor(ValueStack stack,
                        javax.servlet.http.HttpServletRequest request,
                        javax.servlet.http.HttpServletResponse response)

  - ### Method Detail

    - #### getDefaultOpenTemplate

          public String getDefaultOpenTemplate()

      Specified by:
        `getDefaultOpenTemplate` in class `ClosingUIBean`

    - #### getDefaultTemplate

          protected String getDefaultTemplate()

      Description copied from class: `UIBean`
      A contract that requires each concrete UI Tag to specify which template should be used as a default. For example, the CheckboxTab might return "checkbox.vm" while the RadioTag might return "radio.vm". This value not begin with a '/' unless you intend to make the path absolute rather than relative to the current theme.
      Specified by:
        `getDefaultTemplate` in class `UIBean`
      Returns:
        The name of the template to be used as the default.

    - #### usesBody

          public boolean usesBody()

      Description copied from class: `Component`
      Overwrite to set if body should be used.
      Overrides:
        `usesBody` in class `Component`
      Returns:
        always false for this component.

    - #### evaluateExtraParams

          protected void evaluateExtraParams()

      Overrides:
        `evaluateExtraParams` in class `UIBean`

    - #### setUrlIncludeParams

          public void setUrlIncludeParams(String urlIncludeParams)

    - #### setUrlRenderer

          public void setUrlRenderer(UrlRenderer urlRenderer)

    - #### setExtraParameterProvider

          public void setExtraParameterProvider(ExtraParameterProvider provider)

    - #### start

          public boolean start(Writer writer)

      Description copied from class: `Component`
      Callback for the start tag of this component. Should the body be evaluated?
      Overrides:
        `start` in class `ClosingUIBean`
      Parameters:
        `writer` - the output writer.
      Returns:
        true if the body should be evaluated

    - #### end

          public boolean end(Writer writer,
                             String body)

      Overrides to be able to render body in a template rather than always before the template
      Overrides:
        `end` in class `UIBean`
      Parameters:
        `writer` - the output writer.
        `body` - the rendered body.
      Returns:
        true if the body should be evaluated again

    - #### addParameter

          public void addParameter(String key,
                                   Object value)

      Description copied from class: `Component`
      Adds the given key and value to this component's own parameter.
      If the provided key is `null` nothing happens. If the provided value is `null` any existing parameter with the given key name is removed.
      Overrides:
        `addParameter` in class `Component`
      Parameters:
        `key` - the key of the new parameter to add.
        `value` - the value associated with the key.

    - #### addAllParameters

          public void addAllParameters(Map params)

      Description copied from class: `Component`
      Adds all the given parameters to this component's own parameters.
      Overrides:
        `addAllParameters` in class `Component`
      Parameters:
        `params` - the parameters to add.

    - #### getUrlProvider

          public UrlProvider getUrlProvider()

    - #### setHref

          public void setHref(String href)

    - #### setIncludeParams

          public void setIncludeParams(String includeParams)

    - #### setScheme

          public void setScheme(String scheme)

    - #### setValue

          public void setValue(String value)

      Overrides:
        `setValue` in class `UIBean`

    - #### setAction

          public void setAction(String action)

    - #### setNamespace

          public void setNamespace(String namespace)

    - #### setMethod

          public void setMethod(String method)

    - #### setEncode

          public void setEncode(boolean encode)

    - #### setIncludeContext

          public void setIncludeContext(boolean includeContext)

    - #### setPortletMode

          public void setPortletMode(String portletMode)

    - #### setWindowState

          public void setWindowState(String windowState)

    - #### setPortletUrlType

          public void setPortletUrlType(String portletUrlType)

    - #### setAnchor

          public void setAnchor(String anchor)

    - #### setEscapeAmp

          public void setEscapeAmp(boolean escapeAmp)

    - #### setForceAddSchemeHostAndPort

          public void setForceAddSchemeHostAndPort(boolean forceAddSchemeHostAndPort)

    - #### setEscapeHtmlBody

          public void setEscapeHtmlBody(boolean escapeHtmlBody)

Copyright © 2000–2026 Apache Software Foundation. All rights reserved.