url
Please make sure you have read the Tag Syntax document and understand how tag attribute syntax works.
NOTE: The
id
attribute is deprecated in Struts 2.1.x, and has been replaced by thevar
attribute.
Description
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., &). 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
orget
, 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 likehttp://<host>:<port>/<context>/editUser.action?id=3333&name=John
the generated url will behttp://<host>:<port>/<context>/editUser.action?id=22&name=John
because the parameter defined in theparam
tag will take precedence
Setting a default value for includeParams
The property struts.url.includeParams
can be used to set the default value of the includeParams
attribute.
Setting the default value of includeParams
<struts>
...
<constant name="struts.url.includeParams" value="none" />
...
</struts>
See Constant Configuration for further information.
NOTE: As of Struts 2.1.3 the includeParams constant defaults to
none
.
This tag is used to create a URL
Attributes
Dynamic Attributes Allowed:false |
|||||
Name |
Required |
Default |
Evaluated |
Type |
Description |
---|---|---|---|---|---|
action | false | false | String | The action to generate the URL for, if not using value | |
anchor | false | false | String | The anchor for this URL | |
encode | false | true | false | Boolean | Whether to encode parameters |
escapeAmp | false | true | false | Boolean | Specifies whether to escape ampersand (&) to (&) or not |
forceAddSchemeHostAndPort | false | false | false | Boolean | Specifies whether to force the addition of scheme, host and port or not |
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' |
method | false | false | String | The method of action to use | |
namespace | false | false | String | The namespace to use | |
performClearTagStateForTagPoolingServers | false | false | false | Boolean | Whether to clear all tag state during doEndTag() processing (if applicable) |
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". | |
scheme | false | false | String | Set scheme attribute | |
value | false | false | String | The target value to use, if not using action | |
var | false | false | String | Name used to reference the value pushed into the Value Stack (scope: action). | |
windowState | false | false | String | The resulting portlet window state |
NOTE: When the
var
attribute is used with theurl
tag, the tag’s generated URL value will be placed into the request scope in addition to the action scope.
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>