在jsp页面中通过session传递Vector时发生的问题?那位大虾帮看看!

sm8848 2003-04-24 10:58:02
通过查询页面,把查询结果Vector放到色session里面,再调转页面,在另外一个jsp页面里面,把这个值取出来,但可以得到

Vector list1 = (Vector)session.getValue("list");
list = new Vector();
list = list1;
System.out.println("This is OK!!!"+list.size());
到这里是可以的,

但要得出具体结果是就报java.lang.String的错误,那位大虾能帮解释一下!

下面是报错:
This is OK!!!51
java.lang.ClassCastException: java.lang.String
at jsp.APPS.jzjweb.tree_zyxxmore._jspService(tree_zyxxmore.java:290)
at org.apache.jasper.runtime.HttpJspBase.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.netscape.server.servlet.servletrunner.ServletInfo.service(Unknown
Source)
at com.netscape.server.servlet.servletrunner.ServletRunner.callJSP(Unkno
wn Source)
at com.netscape.server.servlet.platformhttp.PlatformHttpServletResponse.
callJspCompiler(Unknown Source)
at com.netscape.server.servlet.platformhttp.PlatformHttpServletResponse.
callUri(Unknown Source)
at com.netscape.server.servlet.platformhttp.PlatformHttpServletResponse.
callUriRestrictOutput(Unknown Source)
at com.netscape.server.servlet.platformhttp.PlatformRequestDispatcher.fo
rward(Unknown Source)
at com.netscape.server.servlet.jsp.JSPRunner.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.netscape.server.servlet.servletrunner.ServletInfo.service(Unknown
Source)
at com.netscape.server.servlet.servletrunner.ServletRunner.execute(Unkno
wn Source)
at com.kivasoft.applogic.AppLogic.execute(Unknown Source)
at com.kivasoft.applogic.AppLogic.execute(Unknown Source)
at com.kivasoft.thread.ThreadBasic.run(Native Method)
at java.lang.Thread.run(Thread.java:479)
[24/四月/2003 22:53:19:4] error: Exception: SERVLET-run_failed: Failed in runnin
g template: javax.servlet.ServletException: ja
va.lang.String
...全文
114 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
HuangBin 2003-04-28
  • 打赏
  • 举报
回复
你把
String xxx = (String)vector.get(i)
改成
String xxx = vector.get(i).toString()
试试
zez 2003-04-28
  • 打赏
  • 举报
回复
那把源码贴出来 .
要不怎么知道哪里的错误?
sm8848 2003-04-28
  • 打赏
  • 举报
回复
谢谢!我这里其实已经给它转换过了!
zez 2003-04-28
  • 打赏
  • 举报
回复
list里面包含的是Objict
你的程序又不知道那是String
所以你就要显示转换一下呀
(String)list.get(i)
sm8848 2003-04-28
  • 打赏
  • 举报
回复
list = new Vector();
list = list1;

是准备把从session取出来list1的值赋给已定义的list,直接list1.size()当然也是可以的。

String xxx = (String)vector.get(i),敢问这句话是什么意思?

就是直接把从session取出来list1的值赋给已定义的list时候,是可以得到list1.size(),但想从list中取出具体的值时,出现了lang.String 转型错误的
ChDw 2003-04-28
  • 打赏
  • 举报
回复
都已经正确的取出那个Vector还有size
是下面的代码出错了
HuangBin 2003-04-28
  • 打赏
  • 举报
回复
另外说一下,想复制vector中的内容好象是这样做
list = new Vector(list1);
miwu 2003-04-27
  • 打赏
  • 举报
回复
整段程序没有牵扯到String呀!
就是最后用System.out.println的时候,参数应该是String的!
zez 2003-04-27
  • 打赏
  • 举报
回复
String xxx = (String)vector.get(i)
这里转型
老土豆T 2003-04-27
  • 打赏
  • 举报
回复
抛出的是lang.String 转型错误.

我觉得,你有必要把它分开显示一下看看能不能得到错误..


还有,实在看不懂你那段程序是什么意思

Vector list1 = (Vector)session.getValue("list");
list = new Vector();
list = list1;
System.out.println("This is OK!!!"+list.size());


为什么不直接. list1.size()??
sm8848 2003-04-26
  • 打赏
  • 举报
回复
不是这个问题!Vector list1 = (Vector)session.getAttribute("list");
我用了这个方法以后,还是报一样的错误!

这个恐怕与vector的实现方法没有关系!
icecloud 2003-04-25
  • 打赏
  • 举报
回复
getValue在新版本jdk里面已经不支持了

另外,vector也更改了实现方式,实现了Collection接口
详细的自己多读一些jdk文档吧
twoday 2003-04-25
  • 打赏
  • 举报
回复
list和list1在栈上是两个不同的变量(指针),但指向的是同一块内存堆。
x_coolboy 2003-04-25
  • 打赏
  • 举报
回复
同意葫芦兄的意见
list = new Vector();
JVM又分配了一块内存给list,list和list1不是同一块内存区
sikuan 2003-04-24
  • 打赏
  • 举报
回复
Vector list1 = (Vector)session.getAttribute("list");

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧