日期:2014-05-16  浏览次数:20613 次

一个超简单问题 servlet返回String数组 out.print(string);之后jsp页面怎么显示?
我的servlet是这样写的

PrintWriter out=response.getWriter();
String s[]={"a","bb","ccc"};
out.print(s);

前台通过回调函数得到s 然后怎么迭代此数组?
我在jsp里面用s.length有擦和你共度,s[0]显示undefined
求解

------解决方案--------------------

var s ='{"a","bb","ccc"}'; //前台得到后台的数据
alert(s.length); //16
alert(s[0]);//undefined

var s1 = ["a","bb","ccc"];
alert(s1.length);  //3
alert(s1[0]); //a

后台的数据 var s 传到前台后 js不认为是数组。 要转成s1类似的数组方可。。话比较糙,但意思就是这么个意思。。 
------解决方案--------------------
引用:
JavaScript code?1234567var s ='{"a","bb","ccc"}'; //前台得到后台的数据    alert(s.length); //16    alert(s[0]);//undefined         var s1 = ["a","bb","ccc"];    alert(s1.length);  //3    alert(s1[……

可以将后台 s转为 "a,bb,ccc"形式,到前台后用split(',')处理为你要的数组。或者用json
------解决方案--------------------
ajax接受不了数组,组合成字符串输出。

即使是使用框架的,也是框架帮你处理成字符粗了才输出的

PrintWriter out=response.getWriter();
String _s="['a','bbb','ccc']";/////
out.print(_s);////


var _s=eval('('+ajaxObj.responseText+')')//////
alert(_s[0])

------解决方案--------------------
不会的就不是简单问题,不要给问题定性,这样显得自己很没水平,连超简单问题都要问别人。

你可以先看看浏览器里输出的结果是什么形式的再决定是修改服务器输出形式还是浏览器处理方式。