Struts 框架帶有幾個自定義標(biāo)簽庫(有關(guān) Struts 的更多信息的鏈接請參閱 參考資料 )。這些庫中的一個標(biāo)簽可以創(chuàng)建一個支持改寫 URL 的鏈接并用 jsessionid
對改寫的連接編碼。
不過有一個問題:如果希望傳遞一組請求參數(shù)(如查詢字符串),也許必須為此創(chuàng)建一個 Java scriptlet。真是亂!下面的清單 (search_results.jap) 展示了一個 JSP 頁,它被迫加入了這樣一個 scriptlet。
<%@ taglib uri="struts-html" prefix="html" %> <jsp:useBean class="java.util.HashMap" id="deleteParams" /> <% deleteParams.put("id", cd.getId()); deleteParams.put("method","delete"); %> <!-- Pass the map named deleteParams to html:link to generate the request parameters--> <html:link action="/deleteCD" name="deleteParams">delete </html:link> </font></td>
search_results.jsp 創(chuàng)建一個 hashmap 并向這個 map 傳遞兩個屬性。在下面幾小節(jié),我們將創(chuàng)建一個不用 Java 代碼完成這項工作的自定義標(biāo)簽。我們的標(biāo)簽將定義如下的一個 hashmap:
<map:mapDefine id="deleteParams"> <map:mapEntry id="id" name="cd" property="id"/> <map:mapEntry id="method" value="delete"/> </map:mapDefine> <!-- Pass the map named deleteParams to html:link to generate the request parameters--> <html:link action="/deleteCD" name="deleteParams">delete </html:link> </font></td>
這將使我們可以容易地創(chuàng)建小型 map。
這個例子將展示幾個關(guān)鍵概念,包括使用嵌套標(biāo)簽和定義 scriplet 變量。首先我將解釋這個標(biāo)簽是如何工作的。然后在以后的幾節(jié)中建立這些概念,并介紹如何編寫這個標(biāo)簽的不同形式,使它們處理其正文并控制執(zhí)行流程。