今天碰到一个奇怪的问题,视图层提交之后,没有走到action直接就报错,错误为“找不到对应的action”。
开始以为是自己struts或者spring配置文件里面配置出错了,然后自己检查了一遍,发现配置没什么问题,重试还是出现这个问题。叫来同事帮忙检查,再次确认配置没问题,debug跟到js里面,也没发现哪儿出错。后来又找了另外一个同事,dedug一步步查数据,最后发现是视图层把数据送到VO的过程中发生错误。
在VO中字段生命为long但视图层传过去的是一个字符串,因此在转换的时候发生错误。
常规的在后台获取视图层参数的方法是通过httprequest的getParameter方法来接受,而struts帮我们封装了这些接收参数的操作,通过VO来接收页面传过来的参数,getParameter得到的参数都是string类型的,如果VO中是非string类型的变量则需要进行类型转换,在这个过程中就容易出现错误,上面我遇到的方法就属于这种。
总结一下:
找不到action这种错误原因:
1、配置文件出错
2、数据类型出错
也就是数据库定义的类型和自己所取的数据类型不一致,所以报这个错误