<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    176142998

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      116 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks
    插件提供了一種名為json的ResultType,一旦為某個(gè)Action指定了一個(gè)類型為json的Result,則該Result無(wú)需映射到任何視圖資源。因?yàn)镴SON插件會(huì)負(fù)責(zé)將Action里的狀態(tài)信息序列化成JSON格式的數(shù)據(jù),并將該數(shù)據(jù)返回給客戶端頁(yè)面的JavaScript。

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

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

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

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

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

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

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

      處理該請(qǐng)求的Action類代碼如下:   public class JSONExample
      {
      //封裝請(qǐng)求參數(shù)的三個(gè)屬性
      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";
      //三個(gè)請(qǐng)求參數(shù)對(duì)應(yīng)的setter和getter方法
      public String getField1()
      {
      return field1;
      }
      public void setField1(String field1)
      {
      this.field1 = field1;
      }
      //此處省略了field1和field2兩個(gè)字段的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;
      }
      //使用注釋語(yǔ)法來(lái)改變?cè)搶傩孕蛄谢蟮膶傩悦?
      @JSON(name="newName")
      public String getCustomName()
      {
      return this.customName;
      }
      public String execute()
      {
      map.put("name", "yeeku");
      return Action.SUCCESS;
      }
      }
      在上面代碼中,使用了JSON注釋,注釋時(shí)指定了name域,name域指定Action屬性被序列化成JSON對(duì)象的屬性名。除此之外,JSON注釋還支持如下幾個(gè)域:


      

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

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

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

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

      配置該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">
    <struts>
    <constant name="struts.i18n.encoding" value="UTF-8"/>
    <package name="example" extends="json-default">
    <action name="JSONExample" class="lee.JSONExample">
    <result type="json"/>
    </action>
    </package>
    </struts>  
      在上面配置文件中有兩個(gè)值得注意的地方:

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

      第二個(gè)地方是配置包時(shí),自己的包繼承了json-default包,而不再繼承默認(rèn)的default包,這是因?yàn)橹挥性谠摪虏庞衘son類型的Result。
    posted on 2008-08-04 09:33 飛飛 閱讀(212) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 九九免费观看全部免费视频| 国产精品亚洲аv无码播放| 久久久亚洲AV波多野结衣| 中文字幕无码日韩专区免费 | 亚洲成AV人片在线观看ww| a级精品九九九大片免费看 | 91成人免费在线视频| 亚洲日韩VA无码中文字幕| 老子影院午夜伦不卡亚洲| 蜜桃精品免费久久久久影院| 亚洲欧洲日韩极速播放| 九九九精品视频免费| 四虎永久免费地址在线观看| 亚洲精品无码不卡在线播放| 午夜dj免费在线观看| 亚洲AV无码一区二区乱子仑| 国产一级一片免费播放| 久久久WWW成人免费精品| 日本亚洲欧洲免费天堂午夜看片女人员 | 永久免费看bbb| 男男gvh肉在线观看免费| 不卡精品国产_亚洲人成在线 | 成年网站免费入口在线观看| 亚洲精品乱码久久久久久不卡| 韩国免费a级作爱片无码| 久久亚洲AV成人出白浆无码国产| 亚洲视频免费在线看| 一本色道久久88—综合亚洲精品| 国产在线19禁免费观看国产| 国产无限免费观看黄网站| 亚洲激情在线视频| 成人性生免费视频| EEUSS影院WWW在线观看免费| 久久亚洲综合色一区二区三区| 久草视频在线免费| 久久亚洲精品国产精品黑人| 国产又黄又爽又猛免费app| 免费一区二区无码视频在线播放 | 亚洲女初尝黑人巨高清| 99在线视频免费观看视频| 成年免费a级毛片|