「100分」ajax传值问题
最近在写一个留言板,用ajax实现.
用ajax向服务器发送请求,请问我能从java后台返回一个List到前台吗?类似于request.setAttribute("list",list);如果可以,要用什么获得?我现在网上看到的例子都是用xmlhttp.responseText取值。这样的话我能想到的就是在java后台,通过数据库操作返回一个list,然后在java后台里对这个list遍历一推out.print(),在前台就可以用xmlhttp.responseText获得我想要的值。请问除了这种方法,我能传一个list到前台,然后在前台遍历吗》?
------解决方案--------------------你想在JS端直接操作List,嗯,想法很好。
想前后台紧密交互的话,可以用DWR,这个组件可以帮你解决不少问题。
如果自行用Ajax或jQuery解决的话,你得设法在Servlet端把List转为JSON,JS能自行转换为JSON对象。
------解决方案--------------------用ajax,只能这样。
不过可以用jquery,用json类型传到前台来处理
------解决方案--------------------嗯,以前经常都是这么做的:
后台输出HTML片段,比如:
<TR>
<TD>....</TD>
<TD>....</TD>
<TD>....</TD>
</TR>
前台拿到后直接就:getElementById("TableID").innerHTML=xmlhttp.responseText;
不过从MVC角度出发,仍然建议应该用JSP负责输出这些片段,而不是Servlet玩out.print();
哦,类型可以用 text/plain
------解决方案--------------------没啥,就是:
请求URL时,仍请求Action或Servlet,由其查询数据并生成List;
然后重定向到JSP;
JSP负责从request.getAttribute()得到List,然后输出HTML片段;
这样浏览器端就可以得到HTML片段了。
------解决方案--------------------哦,你又绕回还是要直接获取List了,那么方法更简单:
请求URL时,仍请求Action或Servlet,由其查询数据并生成List;
然后利用JSON-Object或其它组件,将List转为 JSON 格式的字符串;
然后用response进行输出就完毕了。
这样浏览器端就可以得到JSON字符串了,直接eval就可以变成JSON对象了:
var ojb = eval(xmlhttp.responseText);
直接可以按对象方式访问:ojb[2].age
------解决方案--------------------
------解决方案--------------------
楼主你用Struts2啊,这个提供了对JSON的支持,参见这里:
http://blog.csdn.net/wbb1983/article/details/2294494