AJAX如何使用Spring在JSP上访问Map List JSON

时间:2013-03-12 19:26:55

标签: ajax json spring jsp spring-mvc

我正在尝试使用以下代码使用listlist2数据填充组合框:

$("#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);

任何帮助将不胜感激!感谢。

1 个答案:

答案 0 :(得分: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()的顺序不同。