url
Please make sure you have read the Tag Syntax document and understand how tag attribute syntax works.
NOTE: The
idattribute is deprecated in Struts 2.1.x, and has been replaced by thevarattribute.
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
allorget, 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=Johnthe generated url will behttp://<host>:<port>/<context>/editUser.action?id=22&name=Johnbecause the parameter defined in theparamtag 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
varattribute is used with theurltag, 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>