1
我正在使用Spring MVC並嘗試從我的控制器發送一個對象數組以使用int JQuery自動完成。我已經設法用Array List<String>
這樣做了。但我無法讓它與一個對象數組一起工作。我需要標籤和值在JQuery自動完成中成爲不同的字符串。JQuery自動完成對象數組
我要做到以下幾點,根據自動完成JQuery用戶界面:
[ { label: "Label1", value: "Value1" }, ... ]
我設法得到它的JS
var obj = jQuery.parseJSON('[{"label":"Label1","value":"Value1"},{"label":"Label2","value":"Value2"}]');
內工作,但我在我控制器創建我無法將其作爲字符串發送到自動填充(由於自動填充的成功不會觸發,並且響應(數據)不會運行)。所以我嘗試創建如下。
@RequestMapping(params = {"type=itemType"})
public @ResponseBody List<DataObject> returnItemType(@RequestParam("itemType") String itemType) {
List<DataObject> objList = new ArrayList<DataObject>();
objList.add(new DataObject("Label1", "Value1"));
objList.add(new DataObject("Label2", "Value2"));
return objList;
}
private static class DataObject {
private String label;
private String value;
public DataObject(String label, String value) {
this.label = label;
this.value = value;
}
public String toString() {
return "label = " +label+ ", value = " +value;
}
}
如果我添加GSON return gson.toJson(objList);
的JSON看起來螢火不錯。但是,自動完成的成功將不會運行,並且response(data)
將不會運行Gson中的字符串。
的JS爲自動完成
$(function() {
$("#itemType").autocomplete({
source: function(request, response) {
$.ajax({
url: "autocomplete.do",
dataType: "json",
cache: true,
contentType: "application/json; charset=utf-8",
data: {
"type" : "itemType",
"itemType" : $("#itemType").val()
},
success: function(data) {
response(data);
}
});
},
select: function(event, ui) {
$("#itemType").val(ui.item.value);
$("#orderItemFilterForm").submit();
},
minLength: 0
});
$('#itemType').click(function(){
$(this).val("");
$(this).data("autocomplete").search($(this).val());
});
});
有什麼建議?