jsp页面类的类型转换问题
大家好,有个servlet-jsp问题想向大家请教一下。问题描述
①A.java文件是我自己定义的一个类(已经继承了java.io.Serializable)。
②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技术,所以比较菜,希望各位高手能够不吝赐教,谢谢!
(希望有知道怎么回事的高手回复,在线等,谢谢。)
搜索更多相关主题的帖子:
jsp 类型 页面
----------------解决方案--------------------------------------------------------
高手快些出现啊~~
Help!
----------------解决方案--------------------------------------------------------
可能是同名引起的吧
HttpServletRequest.setAttribute("test",new A())
jsp:useBean id="test" class="A的包名+类名" scope="request" />
----------------解决方案--------------------------------------------------------
以下是引用gameohyes在2010-10-7 22:06:38的发言:
可能是同名引起的吧
HttpServletRequest.setAttribute("test",new A())
jsp:useBean id="test" class="A的包名+类名" scope="request" />
感谢你的回复,但是难道不应该命名成相同的名字么?可能是同名引起的吧
HttpServletRequest.setAttribute("test",new A())
jsp:useBean id="test" class="A的包名+类名" scope="request" />
我以为只有名字一样的话才能正常的把类传过去。这样理解有问题吗?
本人是初学者,所以有理解错误的地方请指正一下,谢谢。
----------------解决方案--------------------------------------------------------
要想便于你更好的理解的话,最好是去查看下关于这个页面被翻译后的java代码
Tomcat 安装目录\work\Catalina\localhost\项目名\包\**.java
----------------解决方案--------------------------------------------------------