工作積累(九)——前後臺傳遞類Map型參數

最近在工作中整合友盟消息推送服務時,遇到了用 Ajax Java 後臺傳遞自定義參數的需求,當時想要採取 java.util.Map ,但發現 Ajax 無法傳遞 java.util.Map 類型的參數,後來無奈採取的方式的是採用了這樣的 Vo 對象:

public ExtraVo {
  private List<String> keys;
  private List<String> values;
  //省略 get | set 方法
}

取值時:

if(extraVo.getKeys() != null) {
  for(int i = 0; i < extraVo.getKeys.size(); i++) {
   broadcast.setExtraField(extraVo.getKeys().get(i), extraVo.getValues().get(i));
  }
}

雖然解決了問題,但是確實呆萌,後來轉念一想才發現腦子懵了,爲什麼不用 List<SomeVo> 這種形式呢?而 org.apache.commons.httpclient.NameValuePair 正是實現 key-value 的一種類(當然這個類很簡單,如果不想引入額外 jar 包完全可以自己去實現),改造後的 Vo 對象:

public ExtraVo {
  private List<NameValuePair> customParams;
  //省略 get | set 方法
}

取值時:

if(extraVo.getCustomParams() != null) {
  for(int i = 0; i < extraVo.getCustomParams().size(); i++ ) {
    broadcast.setExtraField(extraVo.getCustomParams().get(i).getName(),extraVo.getCustomParams().get(i).getValue());
  }
}

這樣就簡單的實現了前後臺傳遞 Map 類型的參數。

完。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章