国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
在struts 2中使用json ajax支持
JSON插件提供了一種名為json的ResultType,一旦為某個Action指定了一個類型為json的Result,則該Result無需映射到任何視圖資源。因?yàn)镴SON插件會負(fù)責(zé)將Action里的狀態(tài)信息序列化成JSON格式的數(shù)據(jù),并將該數(shù)據(jù)返回給客戶端頁面的JavaScript。

  簡單地說,JSON插件允許我們在JavaScript中異步調(diào)用Action,而且Action不再需要使用視圖資源來顯示該Action里的狀態(tài)信息,而是由JSON插件負(fù)責(zé)將Action里的狀態(tài)信息返回給調(diào)用頁面——通過這種方式,就可以完成Ajax交互。

  Struts2提供了一種可插拔方式來管理插件,安裝Struts2的JSON插件與安裝普通插件并沒有太大的區(qū)別,一樣只需要將Struts2插件的JAR文件復(fù)制到Web應(yīng)用的WEB-INF/lib路徑下即可。

  安裝JSON插件按如下步驟進(jìn)行:

 ?。?)登陸http://code.google.com/p/jsonplugin/downloads/list站點(diǎn),下載Struts2的JSON插件的最新版本,當(dāng)前最新版本是0.7,我們可以下載該版本的JSON插件。

 ?。?)將下載到的jsonplugin-0.7.jar文件復(fù)制到Web應(yīng)用的WEB-INF路徑下,即可完成JSON插件的安裝。

  實(shí)現(xiàn)Actio邏輯

  假設(shè)wo,en輸入頁面中包含了三個表單域,這三個表單域?qū)τ谌齻€請求參數(shù),因此應(yīng)該使用Action來封裝這三個請求參數(shù)。三個表單域的name分別為field1、field2和field3。

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

  public class JSONExample

  {

  //封裝請求參數(shù)的三個屬性

  private String field1;

  private transient String field2;

  private String field3;

  //封裝處理結(jié)果的屬性

  private int[] ints = {10, 20};

  private Map map = new HashMap();

  private String customName = "custom";

  //三個請求參數(shù)對應(yīng)的setter和getter方法

  public String getField1()

  {

  return field1;

  }

  public void setField1(String field1)

  {

  this.field1 = field1;

  }

  //此處省略了field1和field2兩個字段的setter和getter方法

  ...

  //封裝處理結(jié)果的屬性的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;

  }

  }

  在上面代碼中,使用了JSON注釋,注釋時指定了name域,name域指定Action屬性被序列化成JSON對象的屬性名。除此之外,JSON注釋還支持如下幾個域:

  serialize:設(shè)置是否序列化該屬性

  deserialize:設(shè)置是否反序列化該屬性。

  format:設(shè)置用于格式化輸出、解析日期表單域的格式。例如"yyyy-MM-dd'T'HH:mm:ss"。

  配置該Action與配置普通Action存在小小的區(qū)別,應(yīng)該為該Action配置類型為json的Result。而這個Result無需配置任何視圖資源。

  配置該Action的struts.xml文件代碼如下:

 ?。?xml version="1.0" encoding="GBK"?>

  <!DOCTYPE struts PUBLIC

  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

  "http://struts.apache.org/dtds/struts-2.0.dtd">

 ?。約truts>

 ?。糲onstant name="struts.i18n.encoding" value="UTF-8"/>

 ?。紁ackage name="example" extends="json-default">

 ?。糰ction name="JSONExample" class="lee.JSONExample">

 ?。紃esult type="json"/>

 ?。?action>

 ?。?package>

 ?。?struts>

  在上面配置文件中有兩個值得注意的地方:

  第一個地方是配置struts.i18n.encoding常量時,不再是使用GBK編碼,而是UTF-8編碼,這是因?yàn)锳jax的POST請求都是以UTF-8的方式進(jìn)行編碼的。

  第二個地方是配置包時,自己的包繼承了json-default包,而不再繼承默認(rèn)的default包,這是因?yàn)橹挥性谠摪虏庞衘son類型的Result。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
關(guān)于Struts-JSON配置(詳解帶實(shí)例struts2的json數(shù)據(jù)支持)
tabbedPanel標(biāo)簽
jquery easyui datagrid struts2 json讀取數(shù)據(jù)
android網(wǎng)絡(luò)編程
jackson學(xué)習(xí)之八:常用方法注解
Struts2-Json-Plugin 的使用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服