关于JavaBean和application的问题
服务器是tomcat,我自己定义了一个Bean,想把几个Bean的对象,存储到application中,让application来暂时充当数据库的角色,往application中存储对象是没有问题,用setAttribute()就可以搞定,问题是我想依次取出application中存储的对象,并且用该对象的get方法,得到对象中的属性,这一步,我用的是下面这段代码:
HTML code
Enumeration<String> enumeration=application.getAttributeNames();
boolean isExit=false;
String rename="";
String repwd="";
while(enumeration.hasMoreElements())
{
String attrName=enumeration.nextElement();
User user=(User)application.getAttribute(attrName);//这个User就是我自己定义的Bean,也是这一行报错
rename=user.getUserName();
repwd=user.getPassword();
if(name.equals(rename) && pwd.equals(repwd))
{
isExit=true;
return;
}
}
然后问题就来了:
它总是报这样的错:
java.lang.ClassCastException: java.lang.String cannot be cast to UserBean.User,org.apache.jasper.servlet.JspServletWrapper.handle
JspException(JspServletWrapper.java:567),位置是上面做注释那一行。getAttribute()不应该得到的是Object类型的对象吗?怎么它说的是String?很不理解,望高手解答……
------解决方案--------------------我怀疑setAttribute那边已经出错了
你就将错纠错,打印出来,看个究竟
User user=(User)application.getAttribute(attrName);//这个User就是我自己定义的Bean,也是这一行报错
改为
String tempString=(String)application.getAttribute(attrName);//
System.out.println(tempString);
------解决方案--------------------你的错误是使用动态名的缘故造成的
建议key不要使用动态名称