前端jquery取值问题,List对喜爱那个是后台传过来的

  1. 前台传到后台的input中 现在我想在jquery中便利出来 但是取他的属性值时现实undefined
    alert(banji['banhao']);//此处句子现实undefined
    怎么处理??才能遍历出来?

    图片如下:
    ![list对象banji集合](https://img-ask.csdn.net/upload/201803/21/1521615823_520626.jpg)
    ![需要去除banji的属性值进去](https://img-ask.csdn.net/upload/201803/21/1521615839_641584.jpg)
    

你是想做图表展示吧? 给你个合理的方案:js参数中data的值 通过后台循环list拼接,后台给出结果就行。结果放到input中,js取值 直接引用就行。

前台js也能取,相对复杂一些。前台只能先遍历list每个放到input中才能获取,js才能获取

图片说明
图片说明





${item.banhao}



/c:forEach

不知要的可是这种遍历





${item.banhao}



/c:forEach


 <c:forEach items="${listroom}" var="item" varStatus="status">  
 <tr >  
<td >${item.banhao}</td>  
  </tr>  
</c:forEach>  

发不全

js直接获取就行 var listroom = ${listroom};

input 的 value的值是字符串类型的,你直接给一个后台的list对象肯定是不行的,这样的话value里应该是list.toString以后的结果

所以应该在代码中先把list处理成字符串,然后在赋给value

之后再js中解析字符串,将字符串转换成js的对象

总结来说,问题就是,后台的对象和前台的对象是不肯定互通的,只能是解析来解析去的v


我推荐的做法是在后台把list转成json格式的字符串,然后前台通过 JSON.parse(string)得到的就是一个js对象了。

后台处理JSON可以用阿里的fastjson



图片说明

这个工具把list转成json字符串非常的方便

图片说明

张小北同学,你好:
楼上那位说的很好,但麻烦。我相信你后台应该返回的是一个ModelAndView
同时在前台的javascript中有如下获取方式可获取到后台request域中的值:

 1: var val =  "${value}";
2:  var val = "<%=request.getAttribute("value")%>";

你这种情况:

``` var room_list_str = "${listroom}"; // 得到的是一个room对象的数组字符串
var room_list_arr = JSON.parse(room_list_str); //得到room数组对象
for(var room in room_list_arr){
...
}




注意 ,list集合里面的对象的 toString()方法一定要是最标准的json字符串格式,否则在JSON.parse的时候出错
建议在重新room对象的toString()方法时就用Gson他把转化成标准的json字符串:


import com.google.gson.Gson;

Gson gson = new Gson();

@Override
public String toString() {
return gson.toJson(this);
}



补充:
刚测试了一下,发现gson.toString(this) 会多塞东西:

还是建议自己写:

return "{\"roomId\":\""+roomId+"\", \"roomName\":\""+roomName+"\"}";