栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jsp实验中:tag文件报java.util.ArrayList cannot be cast to java.lang.String

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jsp实验中:tag文件报java.util.ArrayList cannot be cast to java.lang.String

描述

解决思路

(1)第一步:可以看到信息中主要是Exception描述:
他描述23行处理出问题,23行是调用tag文件,也就是tag文件的处理出了问题。
(2)然后第二步,看root cause。可以看到最顶部提到ArrayList cannot be cast to String。
这就是关键,问题在哪里就靠这句话。
(3)最终定位问题是tag文件中不使用request设置attribute,而我使用了这个。这是一个问题。另一个问题是variable默认是返回String,但是我要返回ArrayList,没有做相应的设置,最终出现这个结果。修改后问题解决。
variable默认返回类型如下修改:

后言

解决这个问题用了将近1.5个小时,还是对tag文件的使用不够熟练。
出现问题后,先在代码里加system.out.println确定哪部分没执行。
然后,使用debug观察变量的变化情况,以及语句执行情况,发现数据库可以连接,也可以查询出来结果,但是始终有上图的错误说是ArrayList不能转String。从这里出发逐个排查问题,但是就是在认知范围里代码是正确的,为什么不行呢?没办法了去找书吧,打开jsp的课本翻到tag那一节。
恍然大悟,有一句话“Tag文件将对象的名字及其引用存储到jspContext中,JSP页面才可以使用该对象。”怪不得我在排查问题中发现设置到request的attribute中的值,输出的是null。然后接着往下读,variable默认返回的是String类型,而我要返回的是ArrayList,正是上面的问题信息,至此,问题得解。这也是书籍一个重要作用之一吧。。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/572984.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号