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


你是想做图表展示吧? 给你个合理的方案: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+"\"}";