最近在工做中整合友盟消息推送服務時,遇到了用 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