Struts使用DOJO框架來實(shí)現(xiàn)AJAX標(biāo)簽。首先,執(zhí)行示例前,你需要將struts2-dojo-plugin-2.2.3.jar添加到類路徑。你可以從struts2 下載的lib文件夾中獲取這個文件(C:\struts-2.2.3-all\struts-2.2.3\lib\struts2-dojo-plugin-2.2.3.jar)。
對于這個示例,讓我們參照以下內(nèi)容修改HelloWorld.jsp:
<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="sx" uri="/struts-dojo-tags"%> <html> <head> <title>Hello World</title> <s:head /> <sx:head /> </head> <body> <s:form> <sx:autocompleter label="Favourite Colour" list="{'red','green','blue'}" /> <br /> <sx:datetimepicker name="deliverydate" label="Delivery Date" displayFormat="dd/MM/yyyy" /> <br /> <s:url id="url" value="/hello.action" /> <sx:div href="%{#url}" delay="2000"> Initial Content </sx:div> <br/> <sx:tabbedpanel id="tabContainer"> <sx:div label="Tab 1">Tab 1</sx:div> <sx:div label="Tab 2">Tab 2</sx:div> </sx:tabbedpanel> </s:form> </body> </html>
當(dāng)我們運(yùn)行上面的例子,將得到以下的輸出:
現(xiàn)在,讓我們一步一步地完成這個例子。
首先要注意的是添加一個帶有前綴sx的新標(biāo)簽庫。這個(struts-dojo-tags)是為ajax集成專門創(chuàng)建的標(biāo)簽庫。
然后在HTML頭部內(nèi),我們稱之為sx:head。這將初始化dojo框架,并使其準(zhǔn)備好在頁面中被所有AJAX調(diào)用。這個步驟很重要,如果沒有初始化sx:head,你的ajax調(diào)用將無法工作。
首先我們有autocompleter標(biāo)簽。autocompleter標(biāo)簽看起來非常像一個選擇框。它使用紅色,綠色和藍(lán)色值填充。但選擇框和autocompleter標(biāo)簽之間的不同是autocompleter標(biāo)簽自動完成。也就是說,如果你開始在gr中輸入,它將填充“綠色”。除此之外,這個標(biāo)簽非常類似于我們前面介紹的s:select標(biāo)簽。
接下來,我們有一個日期時間選擇器。此標(biāo)標(biāo)簽創(chuàng)建一個旁邊帶有按鈕的輸入字段。當(dāng)按下按鈕時,顯示彈出日期時間選擇器。當(dāng)用戶選擇日期時,日期以在tag屬性中指定的格式填充到輸入文本中。在我們的示例中,我們指定了dd/MM/yyyy作為日期的格式。
接下來,是我們在之前的示例中為system.action文件創(chuàng)建的一個url標(biāo)簽。它不必是system.action,它可以是之前創(chuàng)建的任何action文件。然后我們有一個div,超鏈接設(shè)置為url,延遲設(shè)置為2秒。當(dāng)你運(yùn)行時會發(fā)生什么,“Initial Content”將顯示2秒,然后div的內(nèi)容將替換為hello.action執(zhí)行的內(nèi)容。
最后,我們有一個簡單的標(biāo)簽面板,有兩個標(biāo)簽。選項(xiàng)卡將其標(biāo)簽標(biāo)記為Tab1和Tab2。
值得注意的是,Struts中的AJAX標(biāo)簽集成仍然是一項(xiàng)進(jìn)展,并且此集成的成熟度在每個版本中都在緩慢增長。
更多建議: