2013-03-12 30 views
0

我試圖使用後續代碼listlist2用數據來填充組合框:AJAX如何使用Spring訪問地圖列表JSON在JSP

$("#collectionPeriod").change(
    function(){ 
     alert('collectionPeriodIndex === ' + $(this).find('option:selected').index()); 
     $.ajax({ 
      type: "GET", 
      url: "${pageContext.request.contextPath}/collectionMonitorCampus.htm", 
      data: {collectionPeriodIndex: $(this).find('option:selected').index(), sYearIndexNext: $('#sYear').find('option:selected').index(), sYearVal: $('#sYear').find('option:selected').val()}, 
      success: function(data) { 
       $("#submission").prop("disabled", false); 
       $("#submission").empty(); 
       $("#category").empty(); 

       $.each($.map(data.list, function(val) { 
        $('#category').append(new Option(val,val)); 
        console.log("val1 " + val); 
       })); 

       $.each($.map(data.list2, function(val) { 
        $('#submission').append(new Option(val,val)); 
        console.log("val2 " + val); 
       })); 
      } 
     }); 

    }); 

我的問題是,控制檯只打印val2值而val完全被忽略。我是如何訪問這些數據的錯誤?

我控制器listlist2被定義爲List<String> returnList = new ArrayList<String>();

的模式,我把listlist1 in is地圖模型=新的HashMap();`

,我返回ModelAndView爲:

return new ModelAndView("jsonView", model);

任何幫助將不勝感激!謝謝。

回答

0

.each().map()都是能夠訪問您的data.list中的元素的函數。 瞭解更多關於.each().map()

您可以使用一個或另一個,你不需要兩個:

$.map(data.list, function(val, i) { 
    $('#category').append(new Option(val,val)); 
    console.log("val1 " + val); 
}); 

或者

$(data.list).each(function(i, val) { 
    $('#category').append(new Option(val,val)); 
    console.log("val1 " + val); 
}); 

注重的參數訂單,.each().map()的順序不同。