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

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

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

取值時:apache

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 對象:ide

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

取值時:spa

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 類型的參數。對象

完。get

相關文章
相關標籤/搜索