ArrayList al = new ArrayList();
al.add("1");
al.add("2");
al.add("3");
String[] ss;
request.setAttribute("attend_states",al);
ss = (String[])request.getAttribute("attend_states");
System.out.println(ss.length);
al.add("1");
al.add("2");
al.add("3");
String[] ss;
request.setAttribute("attend_states",al);
ss = (String[])request.getAttribute("attend_states");
System.out.println(ss.length);
ArrayList al = new ArrayList();
al.add("1");
al.add("2");
al.add("33");
String[] ss;
HashMap hm = new HashMap();
hm.put("attend_states", al.toArray(new String[] {}));
ss = (String[]) hm.get("attend_states");
System.out.println(ss.length);
System.out.println(ss[2]);1.不知道楼主出现的异常是什么?request肯定支持对象传输,
2.作一下测试。
request.setAttribute("attend_states",al.toArray(new String[]{}));
ss = (String[])request.getAttribute("attend_states");
修改成
request.setAttribute("attend_states",al);
ArrayList arTemp = (ArrayList)request.getAttribute("attend_states");
ss = arTemp .toArray(new String[]{});
看一下结果如何?
request.setAttribute("attend_states",(String[])al.toArray());
然后:
ss=(String[])request.getAttribute("attend_states");我想错误原因应该是这么造成的:
arrayList.toArray(Object[] array);
api说是该方法发挥的Object[]的rtti型别是array的型别,
那么这里就是把Object[] 存在Object中,然后试图进行(String[])Object的强制转换了!