標籤:輸入 例子 實現 tab bbed 運行時 page splay nts
Struts使用DOJO架構來實現AJAX標籤。首先,執行樣本前,你需要將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)。
對於這個樣本,讓我們參照以下內容修改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>
當我們運行上面的例子,將得到以下的輸出:
現在,讓我們一步一步地完成這個例子。
首先要注意的是添加一個帶有首碼sx的新標籤庫。這個(struts-dojo-tags)是為ajax整合專門建立的標籤庫。
然後在HTML頭部內,我們稱之為sx:head。這將初始化dojo架構,並使其準備好在頁面中被所有AJAX調用。這個步驟很重要,如果沒有初始化sx:head,你的ajax調用將無法工作。
首先我們有autocompleter標籤。autocompleter標籤看起來非常像一個選擇框。它使用紅色,綠色和藍色值填充。但選擇框和autocompleter標籤之間的不同是autocompleter標籤自動完成。也就是說,如果你開始在gr中輸入,它將填充“綠色”。除此之外,這個標籤非常類似於我們前面介紹的s:select標籤。
接下來,我們有一個日期時間選取器。此標標籤建立一個旁邊帶有按鈕的輸入欄位。當按下按鈕時,顯示彈出日期時間選取器。當使用者選擇日期時,日期以在tag屬性中指定的格式填充到輸入文本中。在我們的樣本中,我們指定了dd/MM/yyyy作為日期的格式。
接下來,是我們在之前的樣本中為system.action檔案建立的一個url標籤。它不必是system.action,它可以是之前建立的任何action檔案。然後我們有一個div,超連結設定為url,延遲設定為2秒。當你運行時會發生什麼,“Initial Content”將顯示2秒,然後div的內容將替換為hello.action執行的內容。
最後,我們有一個簡單的標籤面板,有兩個標籤。選項卡將其標籤標記為Tab1和Tab2。
值得注意的是,Struts中的AJAX標籤整合仍然是一項進展,並且此整合的成熟度等級在每個版本中都在緩慢增長。
(二十三)Struts2 Ajax標籤