700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > jsp实验中:tag文件报java.util.ArrayList cannot be cast to java.lang.String

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

时间:2018-07-31 00:47:22

相关推荐

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,正是上面的问题信息,至此,问题得解。这也是书籍一个重要作用之一吧。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。