日期:2014-05-18  浏览次数:20678 次

jsp里数组自动变成字符串了?
定义一个字符串数组,从session里取值出来后就变成字符串了?

String   lid   =   request.getParameter( "LID ");   //接收

int   i   =   0;
String   []   slist   =   new   String   [200];   //定义数组

slist   =   (String   [])   session.getAttribute( "shoplist ");   从session取值

slist[i]=lid;(如果从session里取值出来,那么这句就要报错。而且 <%=slist[i]%> ,会显示null)

session.setAttribute( "shoplist ",slist);

如果不取值的话,就能执行slist[i]=lid;,这怎么自动变成字符串了啊?高手请教

------解决方案--------------------
不知所云。。。

试过,完全OK的嘛!
<%
String arr[] = new String[]{ "1 ", "2 ", "3 ", "4 "};
session.setAttribute( "abc ",arr);

String arr2[] = (String[]) session.getAttribute( "abc ");
out.println( " <Br> "+ arr2.length);
out.println( " <Br> "+ arr2[0]);
out.println( " <Br> "+ arr2[1]);
arr2[1] = "test ";
out.println( " <Br> "+ arr2[1]);
%>
------解决方案--------------------
不是吧,我们代码都差不多呀,怎么你的就可以,我的就不可以了???
------解决方案--------------------
"slist = (String []) session.getAttribute( "shoplist "); 从session取值 "

session中没有和字段 "shoplist "对应的String数组
那么自然slist会被赋予null值嘛
------解决方案--------------------
session.setAttribute( "shoplist ",arr);
==========================================
这一句你也有?
------解决方案--------------------
还有,你要是想赋值给数组,就直接
String [] slist = (String []) session.getAttribute( "shoplist ");
你先定义了数组,在
slist = (String []) session.getAttribute( "shoplist ");
赋值就不对,数组的地址是个常量啊,只能一个元素一个元素的赋值吧,直接这样赋值是不正确的

------解决方案--------------------
LZ写的代码好乱,这个是正确的写法
String [] slist = (String []) session.getAttribute( "shoplist ");