在Struts 2中使用JSON Ajax支援

來源:互聯網
上載者:User

JSON外掛程式提供了一種名為json的ResultType,一旦為某個Action指定了一個類型為json的Result,則 該Result無需映射到任何視圖資源。因為JSON外掛程式會負責將Action裡的狀態資訊序列化成JSON格式的資料 ,並將該資料返回給用戶端頁面的JavaScript.

簡單地說,JSON外掛程式允許我們在JavaScript中非同步呼叫Action,而且Action不再需要使用視圖資源來 顯示該Action裡的狀態資訊,而是由JSON外掛程式負責將Action裡的狀態資訊返回給調用頁面——通過這種方 式,就可以完成Ajax互動。

Struts2提供了一種可插拔方式來管理外掛程式,安裝Struts2的JSON外掛程式與安裝普通外掛程式並沒有太大的區 別,一樣只需要將Struts2外掛程式的JAR檔案複製到Web應用的WEB-INF/lib路徑下即可。

安裝JSON外掛程式按如下步驟進行:

(1)登陸http://code.google.com/p/jsonplugin/downloads/list網站,下載Struts2的JSON外掛程式的最 新版本,當前最新版本是0.7,我們可以下載該版本的JSON外掛程式。

(2)將下載到的jsonplugin-0.7.jar檔案複製到Web應用的WEB-INF路徑下,即可完成JSON外掛程式的安裝。

實現Actio邏輯

假設wo,en輸入頁面中包含了三個表單域,這三個表單域對於三個請求參數,因此應該使用Action來 封裝這三個請求參數。三個表單域的name分別為field1、field2和field3.

處理該請求的Action類代碼如下:

public class JSONExample  {  //封裝請求參數的三個屬性  private String field1;  private transient String field2;  private String field3;  //封裝處理結果的屬性  private int[] ints = {10, 20};  private Map map = new HashMap();  private String customName = "custom";  //三個請求參數對應的setter和getter方法  public String getField1()  {  return field1;  }  public void setField1(String field1)  {  this.field1 = field1;  }  //此處省略了field1和field2兩個欄位的setter和getter方法  ...  //封裝處理結果的屬性的setter和getter方法  public int[] getInts()  {  return ints;  }  public void setInts(int[] ints)  {  this.ints = ints;  }  public Map getMap()  {  return map;  }  public void setMap(Map map)  {  this.map = map;  }  //使用注釋文法來改變該屬性序列化後的屬性名稱  @JSON(name="newName")  public String getCustomName()  {  return this.customName;  }  public String execute()  {  map.put("name", "yeeku");  return Action.SUCCESS;  }  }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.