Apache Struts 2 Documentation > Home > Guides > Tag Developers Guide > Struts Tags > Tag Reference > Generic Tag Reference > url |
Please make sure you have read the Tag Syntax document and understand how tag attribute syntax works. |
The id attribute is deprecated in Struts 2.1.x, and has been replaced by the var attribute. |
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' 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.
The property struts.url.includeParams can be used to set the default value of the includeParams attribute.
<struts> ... <constant name="struts.url.includeParams" value="none" /> ... </struts>
See Constant Configuration for further information.
As of Struts 2.1.3 the includeParams constant defaults to "none". |
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 |
id | false | false | String | Deprecated. Use 'var' instead | |
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 | |
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 | |
windowState | false | false | String | The resulting portlet window state |
<-- 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>