1

JSON を必要とする jQuery 呼び出しからドロップダウン リストを作成しようとしています。私の出発点(JavaおよびSpring 3)である次のコードをWebで見つけましたが、他の/より良いアプローチを受け入れます:

JSP (関連するコードのみを表示):

<script language="JavaScript">
            $(document).ready(function() { 
                $('#parkName').change(
                function(){
                    alert($(this).val());
                    $.getJSON('${findUnitsURL}', {
                        parkName : $(this).val(),
                        ajax : 'true'
                    }, function(data) {
                        var html = '<option value="">City</option>';
                        var len = data.length;
                        for ( var i = 0; i < len; i++) {
                            html += '<option value="' + data[i].name + '">'
                                + data[i].name + '</option>';
                        }
                        html += '</option>';

                        $('#parkUnitTitleAersa').html(html);
                    });
                });
            });
        </script>


<div id="content">

                <form:form method="post" action="mainForm" commandName="mainForm">

                    <form:select id="parkName" path="parkName">
                        <form:option value="NONE" label="--- Select ---" />
                        <form:options items="${parkList}" />
                    </form:select>

                    <form:select id="parkUnitTitleAersa" path="parkUnitTitleAersa">
                        <form:option value="NONE" label="--- Select ---" />
                        <form:options items="${parkUnitList}" />
                    </form:select>

                    <p class="submit"><input type="submit" name="commit" value="Login"></p>
                    </form:form>

            </div>

要求されたメソッドを持つ Java コントローラー:

@RequestMapping(value = "units", method = RequestMethod.GET)
    public @ResponseBody List<String> unitsForPark(@RequestParam(value = "parkName", required = true) String parkName) {
        List<String> l = new ArrayList<String>();
        l.add("AA01");
        l.add("AA02");
        l.add("LA03");
        l.add("SG04");

        return l;
    }

「parkName」ドロップダウンで値を選択すると、他の値が取り込まれません。firebug を使用すると、次のエラーが発生します。

[10:46:39.881] GET http://localhost:8084/SpringBlog/units?parkName=LA&ajax=true [HTTP/1.1 406 No Aceptable 62ms]

何か案が?ありがとう!!

4

1 に答える 1