2013-03-12 28 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()的顺序不同。