作者:________葬情_231 | 来源:互联网 | 2023-09-05 19:36
url标签用于创建一个URL。在标签体内可以使用param标签,来提供附加的请求参数。如果param标签的value属性是一个数组或者Iterator,那么所有的值都将被附加给UR
url标签用于创建一个URL。
在标签体内可以使用param标签,来提供附加的请求参数。如果param标签的value属性是一个数组或者Iterator,那么所有的值都将被附加给URL。
属性:
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 |
备注:
(1)如果同时指定了action和value,那么将优先使用value属性的值来生成URL;
(2)如果action和value属性都没有指定,那么将使用当前页面的URL;
(3)escapeAmp属性的默认值为true,因此请求参数将使用转义后和号&来分隔(即:&)。这是为了和XHTML一致,然而,当使用property标签来输出url标签生成URL时,应该将escapeAmp属性设为false来禁止和号&的转义;
(4)includeContext属性的默认值为true,即在生成URL中包含Web应用程序的上下文路径,但在与标签的action和value属性一起使用时,其行为会有有些不同。
当与action属性一起使用时,生成的URL始终会包含上下文路径;
当与value属性一起使用时,如果value属性是以斜杠(/)开始(例如:/urlTag.action),那么生成的URL将包含上下文路径;如果value属性指定的是相对路径(例如:urlTag.action),那么生成的URL将不包含上下文路径;
(5)如果includeParams属性的值是get,这生成的URL中将包含GET请求提交的参数;如果值是all,那么生成的URL中也将包含POST请求提交的参数;如果不希望生成的URL中包含任何用户提交的请求参数,那么可以将该属性设为none。
示例:
使用当前页面URL生成URL
使用namepsace和action属性的值生成URL
使用forceAddSchemeHostAndPort属性强制添加schema、主机和端口
将includeParams属性设为true,使用嵌套的param标签附加请求参数
使用id属性和escapeAmp属性,在url标签结束后使用property标签输出生成URL
注:
(1)使用嵌套的param标签附加的请求参数,它们的优先级比用户提交的请求参数要高,因此如果原始的请求参数中有同名的参数,那么它将被覆盖;
(2)指定id属性后,生成的URL将被保存到OgnlContext中;通过将escapeAmp属性设为false来禁止和号&的转义,生成的URL是:urlTag.action?id=1&code=2,浏览器中显示的为:urlTag.action?id=1&code=2。
如果将escapeAmp属性设为true(默认),那么生成的URL是:urlTag.action?id=1&code=2,浏览器中显示为urlTag.action?id=1&code=2。
Strutes2标签url