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 に変換する必要はありません。クラスパスで有効化され、jackson が指定された Spring 3<mvc:annotation-drivenがそれを行います。

@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 answer に追加すると、getJSON も実行する必要はありません。成功のコールバック内で反復してリストをスローし、メッセージを取得します。

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