鍍金池/ 教程/ Java/ Ajax 標簽
注釋
主題/模板
驗證
有用的資源
Struts 2 注解類型
實例
攔截器
異常處理
表單標簽
結果類型
值棧/OGNL
Spring 集成
數據標簽
環(huán)境配置
配置
類型轉換
動作
Hibernate 集成
本地化
發(fā)送郵件
Ajax 標簽
數據庫訪問
體系結構
文件上傳
Tiles 集成
概述
基本的 MVC 架構
控制標簽

Ajax 標簽

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>

當我們運行上述例子時,會得到如下所示的輸出:

http://wiki.jikexueyuan.com/project/struts-2/images/sturtsajaxtag.jpg" alt="" />

現在讓我們一步步的看這個例子。

首先需要注意的是用 prefix sx 添加的新的標簽庫。這(struts-dojo-tags) 是專門為 ajax 集成創(chuàng)建的標簽庫。

然后在 HTML 頭信息內部,我們調用 sx:head。它會初始化 dojo 框架并為頁面內的所有的 AJAX 調用做好準備。這一步是很重要的——沒有 sx:head 初始化,你的 ajax 調用不會起作用。

首先我們得到 autocompleter 標簽。autocompleter 標簽看起來與下拉選框非常相似。它有三個常用的值 red,green 和 blue。但是它和下拉選框之間的區(qū)別是它是自動實現的。也就是說,如果你鍵入 gr,那么它就會用 "green" 填充。除此之外,該標簽與我們之前提到的 s:select 標簽就是非常相似的了。

接下來,我們有一個日期時間選擇器。該標簽創(chuàng)建了一個輸入字段和一個緊挨輸入字段的按鈕。當按下按鈕,就會彈出一個日期時間選擇器。當用戶選擇日期后,該日期就會填充到該標簽屬性指定的表單的輸入文本中。在我們的例子中,我們?yōu)槿掌谥付?dd/MM/yyyy 格式。

接下來我們?yōu)?system.action 文件創(chuàng)建一個 url 標簽,該文件在之前的實踐中已經創(chuàng)建過了。不一定非得是 system.action 文件——它可以是你之前創(chuàng)建的任何操作文件。然后我們得到一個 div,帶有對 url 的超連接設置以及延遲設置為 2 秒。當你運行它的時候,"Initial Content" 會延遲 2 秒,然后 div 的內容會被 hello.action 執(zhí)行中的內容取代。

最后我們得到一個帶有兩個標簽的標簽面板。標簽是帶有 Tab 1 和 Tab 2 標記的 div。

值得注意的是,在 Struts 中的 AJAX 標簽集成仍然是一項有待改善的工作,該集成也隨著每次發(fā)布慢慢的成熟起來。

上一篇:文件上傳下一篇:配置