js获取后台request值 显示option的问题

为什么明明只获取了两个字段 可是显示了一大堆数据 而且获取length是一千多条长度,
哪位大神帮我看看 怎么修改
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明

首先,你后台传递的参数material是个Material对象的List,但是你的js里面是这样获取的:

 var material = '<%= xxx %>';

这样写相当于:

 var material = '<%= xxx.toString() %>';

也就是说,你想在js获取到的是对象数组,但是你实际拿到的是string,console里log的1074是字符串的长度。

你需要这样写:

<% java.util.List materials = (java.util.List) request.getAttribute("material");
   for (int i = 0; i <= materials.size(); i++) {
%>
<%=materials.get(i) %>
<%   } %>

好久没写这东西了,可能写的不对,不过你应该明白问题出在哪里了吧

您好,我用springMVC4.0时间不长,做过两个小型项目,你在前台取应该利用model这个对象,例如model.addAttribute("emp", empBack );在前台用el表达式直接取值![![图片说明](https://img-ask.csdn.net/upload/201704/17/1492402967_91155.png)图片说明](https://img-ask.csdn.net/upload/201704/17/1492402956_582784.png)图片说明

在前台这样取值的,
图片说明

java里面:
public HttpServletRequest test1(HttpServletRequest request){
Listlist=new ArrayList();
list.add("星期一");
list.add("星期二");
list.add("星期三");
list.add("星期四");
list.add("星期五");
list.add("星期六");
request.setAttribute("list", list);
return request;
}

js里面

<%

Demo demo=new Demo();·
demo.test1(request);

%>


material[i].materialCode就可以了 你多加了一个material

图片说明

是你读取的返回的json数据的问题 ,你把返回的数据格式 写清楚

你返回的数据也不对 ,你需要把存放在作用域的对象数据转换成json数据
@ResponseBody //加在你的方法上面

 public String index(){ //
  return  productService.getMaterial();
 }
 $.ajax(url:    ,success: function(data){}
   var obj= $.parseJSON(data);
       $.each(data.metrial,function(){  var select=$("#selectMeterail"); var option=$( "<option>"+你想要的值+"</option>");select.append(option);   })

 )
 $("#meterialSelect").click(function(){


 });