2

我正在尝试使用 JQuery 的 .ajax 方法动态生成列表/下拉列表。以下是我写的代码:

<script type="text/javascript">
    $(document).ready(function() {
        alert('in doc');
        $.ajax({
            url: "dyn/list",
            type: "GET",
            data: "list="+'',
            dataType: "json",
            error: function() {alert('eerrrr');},
            success: function(data) {
                alert('success');
                alert(data);
                    $('#seltag').append(
                        $('<option></option>').html(data)
                    );
            },
            complete: function() {}
        });
        });</script>

我相应的控制器方法看起来像

    @RequestMapping(value = "/dyn/list", method = RequestMethod.GET)
public @ResponseBody String getList(@RequestParam String list)
{
    ArrayList<String> newList = new ArrayList<String>();
    newList.add(opt0);
    newList.add(opt1);
    newList.add(opt2);
    return(new JSONArray(newList).toString());
    //return opt0;
}

其中 opt0,1 和 2 是静态字符串变量。每次返回一个错误。我也尝试过 .getJSON 但无济于事。帮帮我吧伙计们!!

4

2 回答 2

8

您不需要自己转换为 JSON。<mvc:annotation-driven在类路径中启用和杰克逊的Spring 3会为您完成:

@RequestMapping(value = "/dyn/list", method = RequestMethod.GET)
public @ResponseBody List<String> getList(@RequestParam String list) {
    List<String> newList = new ArrayList<String>();
    newList.add(opt0);
    newList.add(opt1);
    newList.add(opt2);
    return newList;
}

有关更多信息,请查看此帖子

于 2012-08-13T06:56:13.203 回答
2

添加到 oris 答案,您也不需要执行 getJSON。在您的成功回调迭代中抛出列表以获取消息。

success: function(data) {
for(var count=0; count<data.length; count++){
 yourMessage = data[count];
}
//your code
}
于 2012-08-14T01:22:31.157 回答