Package org.apache.struts2.components

# Class Link

java.lang.Object
org.apache.struts2.components.Component
org.apache.struts2.components.UIBean
org.apache.struts2.components.Link

public class Link extends UIBean

Add nonce propagation feature to implement CSP in link tags

The link tag allows the user to load external resources, most usually style sheets. External resources can inject malicious code and perform XSS and data injection attacks. The s:link tag includes a nonce attribute that is being randomly generated with each request and only allows links with the valid nonce value to be executed.

Examples

     <s:link ... />

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `as`
  `protected String`
  `crossorigin`
  `protected String`
  `href`
  `protected String`
  `hreflang`
  `protected String`
  `media`
  `protected String`
  `referrerpolicy`
  `protected String`
  `rel`
  `protected String`
  `sizes`
  `protected String`
  `type`

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

  `accesskey, ATTR_FIELD_VALUE, ATTR_NAME_VALUE, ATTR_VALUE, 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, attributes, COMPONENT_STACK, devMode, escapeHtmlBody, performClearTagStateForTagPoolingServers, stack, standardAttributesMap, throwExceptionOnELFailure`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Link(ValueStack stack, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `evaluateExtraParams()`
  `protected String`
  `getDefaultTemplate()`
  A contract that requires each concrete UI Tag to specify which template should be used as a default.
  `void`
  `setAs(String as)`
  `void`
  `setCrossorigin(String crossorigin)`
  `void`
  `setHref(String href)`
  `void`
  `setHreflang(String hreflang)`
  `void`
  `setMedia(String media)`
  `void`
  `setReferrerpolicy(String referrerpolicy)`
  `void`
  `setRel(String rel)`
  `void`
  `setSizes(String sizes)`
  `void`
  `setType(String type)`

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

  `addFormParameter, applyValueParameter, buildTemplateName, copyAttributes, enableAncestorFormCustomOnsubmit, end, ensureAttributeSafelyNotEscaped, escape, evaluateNameValue, evaluateParams, getId, getTemplate, getTemplateDir, getTheme, getTooltipConfig, getValueClassType, lazyEvaluation, mergeTemplate, populateComponentHtmlId, setAccesskey, 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, setValue`

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

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

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

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

- ## Field Details

  - ### href

    protected String href

  - ### hreflang

    protected String hreflang

  - ### rel

    protected String rel

  - ### media

    protected String media

  - ### referrerpolicy

    protected String referrerpolicy

  - ### sizes

    protected String sizes

  - ### crossorigin

    protected String crossorigin

  - ### type

    protected String type

  - ### as

    protected String as

- ## Constructor Details

  - ### Link

    public Link(ValueStack stack, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)

- ## Method Details

  - ### setHref

    public void setHref(String href)

  - ### setHreflang

    public void setHreflang(String hreflang)

  - ### setRel

    public void setRel(String rel)

  - ### setSizes

    public void setSizes(String sizes)

  - ### setCrossorigin

    public void setCrossorigin(String crossorigin)

  - ### setType

    public void setType(String type)

  - ### setAs

    public void setAs(String as)

  - ### setMedia

    public void setMedia(String media)

  - ### setReferrerpolicy

    public void setReferrerpolicy(String referrerpolicy)

  - ### 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.

  - ### evaluateExtraParams

    protected void evaluateExtraParams()
    Overrides:
      `evaluateExtraParams` in class `UIBean`