<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>" >測試連接</a>
<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>
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>
includeContext屬性
<!--includeContext:有true和false兩個值。url中是否包含上下文,也就是在url中的項目名--> <!--這個一般不用改,讓它自動包含,否則會定位到服務器的根目錄下--> <s:url var="url" action="mainPage" includeContext="false"> <s:param name="id" value="123"/> </s:url> 生成的url就下面的樣子了,注意在普通的html中使用/會定位到服務器的根目錄,而在struts的標簽里使用/會自動添加上下文,所以不用麻煩的指定項目名 <a href="/mainPage?id=123">url</a>
Method屬性
<!--method用於指定執行action的方法 這個等同於action="mainPage!ok"--> <s:url var="url" action="mainPage" method="ok"> <s:param name="id" value="123"/> </s:url>
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>