java

位置:IT落伍者 >> java >> 浏览文章

Struts常见的11个错误汇总


发布日期:2023年06月26日
 
Struts常见的11个错误汇总
No bean found under attribute key XXX

在strutsconfigxml里定义了一个ActionForm但type属性指定的类不存在type属性的值应该是Form类的全名或者是在Action的定义中name或attribute属性指定的ActionForm不存在

Cannot find bean XXX in any scope

在Action里一般会requestsetAttribute()一些对象然后在转向的jsp文件里(用tag或requestgetAttribute()方法)得到这些对象并显示出来这个异常是说jsp要得到一个对象但前面的Action里并没有将对象设置到request(也可以是sessionservletContext)里

可能是名字错了请检查jsp里的tag的一般是name属性或getAttribute()方法的参数值或者是Action逻辑有问题没有执行setAttribute()方法就先转向了

还有另外一个可能纯粹是jsp文件的问题例如会指定一个id值然后在循环里使用这个值作为name的值如果这两个值不同也会出现此异常(都是一个道理request里没有对应的对象

Missing message for key XXX

缺少所需的资源检查ApplicationResourcesproperties文件里是否有jsp文件里需要的资源例如

这行代码会找msgnameprompt资源如果AppliationResourcesproperties里没有这个资源就会出现本异常在使用多模块时要注意在模块的strutsconfigxxxxml里指定要使用的资源文件名称否则当然什么资源也找不到这也是一个很容易犯的错误

No getter method for property XXX of bean teacher

这条异常信息说得很明白jsp里要取一个bean的属性出来但这个bean并没有这个属性你应该检查jsp中某个标签的property属性的值例如下面代码中的cade应该改为code才对

Cannot find ActionMappings or ActionFormBeans collection

待解决

Cannot retrieve mapping for action XXX

jsp的

标签里指定action=/XXX但这个Action并未在strutsconfigxml里设置过

HTTP Status /xxx/xxxjsp

Forward的path属性指向的jsp页面不存在请检查路径和模块对于同一模块中的Action转向path中不应包含模块名模块间转向记住使用contextRelative=true

没有任何异常信息显示空白页面

可能是Action里使用的forward与strutsconfigxml里定义的forward名称不匹配

The element type XXX must be terminated by the matching endtag XXX

这个是strutsconfigxml文件的格式错误仔细检查它是否是良构的xml文件关于xml文件的格式这里就不赘述了

Servletinit() for servlet action threw exception

一般出现这种异常在后面会显示一个关于ActionServlet的异常堆栈信息其中指出了异常具体出现在代码的哪一行我曾经遇到的一次提示如下

javalangNullPointerException

at orgapachestrutsactionActionServletparseModuleConfigFile(ActionServletjava:

at orgapachestrutsactionActionServletinitModuleConfig(ActionServletjava:

为解决问题先下载struts的源码包然后在ActionServletjava的第行插入断点并对各变量进行监视很丢人我竟然把strutsconfigxml文件弄丢了因此出现了上面的异常应该是和CVS同步时不小心删除的

Resources not defined for Validator

这个是利用Validator插件做验证时可能出现的异常这时你要检查validationxml文件看里面使用的资源是否确实有定义form的名称是否正确等等

上一篇:Struts 开发的最佳实践

下一篇:反思Spring:由Ruby on Rails想到的