使用Spring MVC从Jquery ajax方法返回String数组

use*_*960 2 arrays string jquery spring-mvc

我试图使用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>
Run Code Online (Sandbox Code Playgroud)

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

    @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;
}
Run Code Online (Sandbox Code Playgroud)

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

ori*_*ori 8

您不需要自己转换为JSON.带有<mvc:annotation-driven启用的spring 3 和类路径中的jackson为你做了:

@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;
}
Run Code Online (Sandbox Code Playgroud)

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