下面是struts2标签的常用的用法
<s:url value="/images/copyright.jpg" />
<s:url action="list" namespace="/qxgl" />
一定要注意:url中includeParams的属性的默认值是get,如果没有在struts.xml指定新的值,那么使用url标签引用的所有的静态文件都会带上通过get方法传递的参数值。
另外: includeParams的属性值还有none、all
all,是把get和post中的参数加入到 url参数中 ;
none是不把参数加入到url中;
例如:你在detail.jsp中写入
<link href="<s:url value="/css/styleqxgl.css"/>" rel="stylesheet"
type="text/css">
在浏览器中输入http://localhost/detail.jsp?id=5
<link href="/web应用名称/css/styleqxgl.css?id=5" rel="stylesheet"
type="text/css">
这样浏览器就又下载了一次styleqxgl.css,如果你的系统放在公网上,那么带宽的费用是很贵的,使用浏览器的缓存,可以有效的利用带宽,节约成本。
解决这个问题的办法有两个,一个是<s:url value="/css/styleqxgl.css" includeParams="none"/>
另外一个就是在struts.xml中配置,参考下文:
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.
Parameters
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 | get | 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 |