如何使用spring和jsp在页面刷新后保留动态下拉列表值

时间:2015-12-31 06:19:12

标签: spring jsp

我有3个dropdownns.customername和companyname以及servername.like this ..

enter image description here

根据客户下拉列表我填写公司名称。根据公司名称下拉列表,我使用Spring和javascript进行人口服务器名称。

如果我点击go按钮,我的页面就会刷新。那时我的droddown值不会保留..

你能否就此向我提出建议。

这是我的代码:

点击客户下拉列表我在jsp中调用onchange方法。

<td valign="bottom">
     <form:select path="CustomerId" id="customerDetails">
     <option selected="selected" disabled="disabled">Select Customer</option>
     <form:options items="${map.customerList}"
     itemLabel="customerName" itemValue="customerId" />
    </form:select> <br>
</td>

有了这个,我得到了我的客户下拉值。客户的更换我得到公司名称..

<script>
    $(document).ready(function() {
        $("#customerDetails").change(function() {
            var value1 = $('#customerDetails :selected').text();
            $.ajax({
                type : 'POST',
                url : 'companynames',
                data : {
                    selectedcustomername : value1
                },
                success : function(result) {
                    getcompNames(result);
               }
            });
        });
    });
</script>

控制器代码:

 @RequestMapping(value = "/companynames", method = RequestMethod.POST)
 public @ResponseBody String getEnvironmentNames(HttpServletRequest request,
   HttpServletResponse response, @RequestParam String selectedcustomername) throws SQLException {
     request.setAttribute("selectedcustomername", selectedcustomername);
     System.out.println("selectedcustomername"+selectedcustomername);
     ModelAndView modelAndView = new ModelAndView();
     modelAndView.addObject("environments", new Environments());
     List<Environments>  environmentnamesList= loginDelegate.getEnvironments(selectedcustomername);
     Collections.sort(environmentnamesList, new CustomComparator());
     Gson gson = new Gson();
     System.out.println("gson"+gson);
     String jsonString = gson.toJson(environmentnamesList);
     System.out.println("jsonString"+jsonString);
     return jsonString;
}

处理控制器的响应:

<script language="JavaScript">
function getcompNames(result){
    $('#environmentName').empty().append('<option selected="selected" disabled="disabled">Select An Environment</option>');
    var data = JSON.parse(result);
    $.each(data, function(key, value)
    {
        $("#environmentName").append("<option>" + value.environments_name +" - "+ value.environments_purpose + "</option>");

    });

}   

这是我的公司ui代码。

<td width="20%" nowrap="nowrap" class="boldFontSize3">
   <b>Company:</b>
   <select class="body" name="environmentName" id="environmentName" class="body">
      <option selected="selected">Select a comapany name</option>
   </select>
</td>

就像这样,只有我得到服务器名。

转到按钮代码:

<input name="Submit" value="Go" type="submit" class="boldFontSize3" /> 
点击go按钮后,我的下拉列表值为空

..我的问题是,当用户点击go按钮时,我的页面正在刷新。我从modelandview对象获取客户下拉值。因为我得到客户下拉值。但是在页面刷新后我没有得到公司名称和服务器。因为只有在客户Dropdown的更改时才会发生restcall。

0 个答案:

没有答案