org.apache.struts2.components

## Class URL

- java.lang.Object
- - org.apache.struts2.components.Component
  - - org.apache.struts2.components.ContextBean
    - - org.apache.struts2.components.URL

-     public class URL
      extends ContextBean

  This tag is used to create a URL.

  You can use the <param> tag inside the body to provide additional request parameters. If the value of a param is an Array or an Iterable all the values will be added to the URL.

  NOTE:

  By default request parameters will be separated using escaped ampersands (i.e., &amp;). This is necessary for XHTML compliance, however, when using the URL generated by this tag with the <s:property> tag, the escapeAmp attribute should be used to disable ampersand escaping.

  NOTE:

  When includeParams is 'all' or 'get', the parameter defined in a <param> tag will take precedence over any params included due to the includeParams attribute. For example, in Example 3 below, if there is a id parameter in the url where the page this tag is included like http://<host>:<port>/<context>/editUser.action?id=3333&name=John the generated url will be http://<host>:<port>/<context>/editUser.action?id=22&name=John because the parameter defined in the param tag will take precedence.

  - action (String) - (value or action choose either one, if both exist value takes precedence) action's name (alias)
  - value (String) - (value or action choose either one, if both exist value takes precedence) the url itself
  - scheme (String) - http scheme (http, https) defaults to the scheme this request is in
  - namespace - action's namespace
  - method (String) - action's method name, defaults to 'execute'
  - encode (Boolean) - url encode the generated url. Defaults to 'true'.
  - includeParams (String) - The includeParams attribute may have the value 'none', 'get' or 'all'. Defaults to 'none'. none - include no parameters in the URL (default) get - include only GET parameters in the URL all - include both GET and POST parameters in the URL
  - includeContext (Boolean) - Specifies whether to include the web app context path. Defaults to 'true'.
  - escapeAmp (Boolean) - Specifies whether to escape ampersand (&) to (&amp;) or not. Defaults to 'true'.
  - portletMode (String) - The resulting portlet mode.
  - windowState (String) - The resulting portlet window state.
  - portletUrlType (String) - Specifies if this should be a portlet render or action URL.
  - forceAddSchemeHostAndPort (Boolean) - Specifies whether to force the addition of scheme, host and port or not.

  Examples

       <-- Example 1 -->
       <s:url value="editGadget.action">
           <s:param name="id" value="%{selected}" />
       </s:url>

       <-- Example 2 -->
       <s:url action="editGadget">
           <s:param name="id" value="%{selected}" />
       </s:url>

       <-- Example 3-->
       <s:url includeParams="get">
           <s:param name="id" value="%{'22'}" />
       </s:url>

  See Also:
    `Param`

- - ### Field Summary

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

      `var`

    - ### 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
    `URL(ValueStack stack, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `end(Writer writer, String body)` Callback for the end tag of this component.
    `String` | `findString(String expr)` Evaluates the OGNL stack to find a String value.
    `UrlProvider` | `getUrlProvider()`
    `void` | `setAction(String action)`
    `void` | `setAnchor(String anchor)`
    `void` | `setEncode(boolean encode)`
    `void` | `setEscapeAmp(boolean escapeAmp)`
    `void` | `setExtraParameterProvider(ExtraParameterProvider provider)`
    `void` | `setForceAddSchemeHostAndPort(boolean forceAddSchemeHostAndPort)`
    `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.

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

      `getVar, putInContext, setVar`

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

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

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

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

- - ### Constructor Detail

    - #### URL

          public URL(ValueStack stack,
                     javax.servlet.http.HttpServletRequest req,
                     javax.servlet.http.HttpServletResponse res)

  - ### Method Detail

    - #### 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 `Component`
      Parameters:
        `writer` - the output writer.
      Returns:
        true if the body should be evaluated

    - #### end

          public boolean end(Writer writer,
                             String body)

      Description copied from class: `Component`
      Callback for the end tag of this component. Should the body be evaluated again?
      NOTE: will pop component stack.
      Overrides:
        `end` in class `Component`
      Parameters:
        `writer` - the output writer.
        `body` - the rendered body.
      Returns:
        true if the body should be evaluated again

    - #### findString

          public String findString(String expr)

      Description copied from class: `Component`
      Evaluates the OGNL stack to find a String value.
      Overrides:
        `findString` in class `Component`
      Parameters:
        `expr` - OGNL expression.
      Returns:
        the String value found.

    - #### getUrlProvider

          public UrlProvider getUrlProvider()

    - #### setIncludeParams

          public void setIncludeParams(String includeParams)

    - #### setScheme

          public void setScheme(String scheme)

    - #### setValue

          public void setValue(String value)

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

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