JQuery,Spring MVC在注册表单上动态加载城区的选择选项

时间:2016-10-16 11:48:30

标签: jquery spring-mvc

我有一个像这样的jsp表单......第二个选择框中的值,应该根据第一个选择框(状态)中的值加载。我正在使用jQuery,Spring MVC来检索结果。但是我首先要求我的控制器中的stateId值,而这个值没有进入我的控制器

addEmployee.jsp

<form:form id="employeeForm" modelAttribute="personaladdress" method="post" action="${baseURL}employee/save" class="form-horizontal" enctype="multipart/form-data">

  <div class="form-group">
    <label for="name" class="col-xs-4 control-label">state</label>
    <div class="col-xs-8">
      <form:select path="stateId" id="state">
        <form:option value="" label="--Select State--"></form:option>
        <c:forEach var="list" items="${states}">
          <option value="${list.stateId }">${list.stateName }</option>

        </c:forEach>
      </form:select>
      <form:errors path="stateId"></form:errors>
    </div>
  </div>
  <form:select path="districtId" id="district">
    <form:option value="" label="--select District--"></form:option>
    <form:options items="${districtList}" itemValue="districtid" itemLabel="description"></form:options>
  </form:select>

控制器

@RequestMapping(value="/addemployee",method = RequestMethod.GET)
public String addEmployee( @ModelAttribute("personalinformation") PersonalInformation personalinformation,
        @ModelAttribute("personaladdress")PersonalAddress personaladdress,
        @ModelAttribute("employee")Employee employee,BindingResult result,Model model){ 
       model.addAttribute("personalinformation",new PersonalInformation());
         model.addAttribute("employee",new Employee());
         model.addAttribute("personaladdress",new PersonalAddress());
         List<State>list=iEmployeeService.getStateList();
         model.addAttribute("states",list); 

       return "addEmployee";    
}

@RequestMapping(value="/districtList",method = RequestMethod.GET)
 @ResponseBody List<District> getDistrictList(@ModelAttribute("personalinformation") PersonalInformation personalinformation,
         @RequestParam(value="stateId", required=true) String stateId, Model model){
    System.out.println("inside districtlistst");
    System.out.println("inside districtlist"+stateId);
     List<District>list=iEmployeeService.getDistrictList();
    return list;
}   

Jquery函数..

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
$('select#state').change(function() {
  var MSG=$("#state").val();
  alert(MSG);
   $.post("employee?action=districtList", {
    stateId: MSG
  }
  ,
  function(data) {
    alert("sucess");
  }
  );

我有员工的注册表格,我必须动态显示州,区和城市的下拉列表。我已经完成了状态列表,但我无法在我的控制器中获取所选状态的ID然后我可以返回一个区域列表,我的表单包含员工字段,个人信息和个人地址,这样我就创建了两个方法,首先返回字符串并显示带有状态下拉列表的注册页面和另一个用于ditrict列表的方法但是在jquery函数中我得到了id但是在getDistrictList中方法我无法得到id.please建议我该怎么做 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我看到你正在使用post type ajax,你的spring控制器方法接受get请求。

尝试这样的事情:

$.ajax({
  type: "GET",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});