在spring mvc中填充基于另一个的下拉列表

时间:2016-10-10 10:00:16

标签: java ajax spring-mvc model-view-controller drop-down-menu

我正在尝试根据第一个下拉列表的选定值将值添加到我的jsp页面的下拉列表中。我正在调用数据库查询以获取用户在select.change事件的第二个下拉列表中的值。但我在第二个下拉列表中获得空值。我尝试了很多方法,但没有任何方法。可能是什么原因?有人可以帮忙吗? 此外,我需要知道第二个下拉列表应编码为option = option + "<option value='" + data[sb].name + "'>" +data[sb].name + "</option>";option = option + "<form:option value='" + data[sb].name + "'>" +data[sb].name + "</form:option>";,因为我还需要将所选值记录到数据库中。 提前致谢

第一个下拉列表的代码:

 @RequestMapping(value = "/add", method = RequestMethod.GET)
    public String showFirstList(Model model) {

        List<Map<String, Object>> firstList = countryRepository.getList();
        model.addAttribute("firstList",firstList);
        model.addAttribute("command", new Record());
        return "newFirst";
    }

ajax调用第二个下拉列表填充。

$("#selectSecond").change(function(){
            var firstList = $(this).val();
            $.ajax({
                type: "POST",
                url: "https://localhost:8081/countPro/getSecndList,
                //dataType: "JSON",
                data: {"countryNm" : countryNm},

                success: function(data){
                    var slctSecond = $("#slctSecond"), option= "";

                    for(var s =0; s<data.length; s++){
                        option = option + "<option value='" + data[s].name + "'>" +data[s].name + "</option>";
                    }
                    slctSecond.append(option);
                    alert(data);
                },
                error:function(e){
alert("error " + e);
                }
            });

        });

处理ajax调用的控制器方法:

 @RequestMapping(value="/getSecndList",method=RequestMethod.POST)
    public @ResponseBody List<Map<String, Object>> getSecndList(@RequestParam("countryNm")String countryNm){

        return countryRepository.retrieveSublist(countryNm);
    }

0 个答案:

没有答案