注册 登录
编程论坛 J2EE论坛

jsp页面类的类型转换问题

ming_fox 发布于 2010-10-07 14:17, 767 次点击
大家好,有个servlet-jsp问题想向大家请教一下。

问题描述
①A.java文件是我自己定义的一个类(已经继承了)。
②B.java是入口文件(就是servlet访问的那个文件)。
③在B.java文件中的execute方法中用了HttpServletRequest.setAttribute("test",new A()),
  然后跳转到menu.jsp页面(用的是forwardJSP)。
④在menu.jsp页面中用了<jsp:useBean>标签,其属性如下。
<jsp:useBean id="test" class="A的包名+类名" scope="request" />

结果在跳转到jsp页面的时候报了下面的错误。
java.lang.ClassCastException: A cannot be cast to A

但是当useBean的"scope"属性设成"session"的时候jsp页面就没有报错。
或者是"scope"属性是"request","id"不叫"test",叫任意其他名字时jsp页面也不报错。

不知道为什么会出现类型转化失败的错误。
本人初学servlet-jsp技术,所以比较菜,希望各位高手能够不吝赐教,谢谢!
(希望有知道怎么回事的高手回复,在线等,谢谢。)
4 回复
#2
ming_fox2010-10-07 15:17
高手快些出现啊~~
Help!
#3
gameohyes2010-10-07 22:06
可能是同名引起的吧
HttpServletRequest.setAttribute("test",new A())
jsp:useBean id="test" class="A的包名+类名" scope="request" />
#4
ming_fox2010-10-08 08:43
以下是引用gameohyes在2010-10-7 22:06:38的发言:

可能是同名引起的吧
HttpServletRequest.setAttribute("test",new A())
jsp:useBean id="test" class="A的包名+类名" scope="request" />
感谢你的回复,但是难道不应该命名成相同的名字么?
我以为只有名字一样的话才能正常的把类传过去。这样理解有问题吗?
本人是初学者,所以有理解错误的地方请指正一下,谢谢。
#5
gameohyes2010-10-09 22:47
要想便于你更好的理解的话,最好是去查看下关于这个页面被翻译后的java代码
Tomcat 安装目录\work\Catalina\localhost\项目名\包\**.java
1