1 url标签简介
<s:url>
标签一般和超链接 <a>
一起使用,用于带多个参数
<a href="
<s:url action="">
<s:param name=" " value=""></s:param>
<s:param name=" " value=""></s:param>
<s:param name=" " value=""></s:param>
</s:url>"
<s:url>
生成一个url
地址,可以通过url
标签制定的<s:param>
子元素向URL
地址发送请求参数
<s:url action=""> 指定请求地址
<s:param name="" value=""></s:param> 指定参数
</s:url>
例子:
<!--action是action的名字,为url添加参数使用param标签-->
<s:url var="urlName" action="mainPage">
<s:param name="id" value="123"/>
</s:url>
<!--使用上面定义的url-->
<s:a href="%{urlName}">测试连接</s:a>
该方法在生成的页面源码中生成如下代码
<a href="/NetBookShop_081029/mainPage?id=123">测试连接</a>
1.1 includeParams属性
最重要的属性includeParams
,该属性有三个值:none get all
,默认值为get
属性值为get
时,该url
会将访问其所在jsp
的的请求的所有get
方法的参数添加到自身来
属性值为all
时更是将get
和post
的的参数值全部添加到自身来
一般我们并不需要额外的参数,所以定义为none
<s:url var="url" action="mainPage" includeParams="none">
<s:param name="id" value="123"/>
</s:url>
1.2 includeContext属性
includeContext
:有true
和false
两个值。url
中是否包含上下文,也就是在url
中的项目名
这个一般不用改,让它自动包含,否则会定位到服务器的根目录下
<s:url var="url" action="mainPage" includeContext="false">
<s:param name="id" value="123"/>
</s:url>
生成的url就下面的样子了
<a href="/mainPage?id=123">url</a>
注意
:在普通的html
中使用/
会定位到服务器的根目录,而在struts
的标签里使用/
会自动添加上下文,所以不用麻烦的指定项目名
1.3 Method属性
method
用于指定执行action
的方法,这个等同于action="mainPage!ok"
<s:url var="url" action="mainPage" method="ok">
<s:param name="id" value="123"/>
</s:url>
1.4 namespace属性
namespace
属性指定命名空间后,生成的url
会使用相对路径,具体的看结果
<s:url var="url" action="mainPage" namespace="user">
<s:param name="id" value="123"/>
</s:url>
结果如下
<a href="user/mainPage?id=123">url</a>