设为首页 加入收藏

TOP

struts2完全捕获404错误的方法
2015-07-16 12:57:07 来源: 作者: 【 】 浏览:11
Tags:struts2 完全 捕获 404 错误 方法

目前在做一个网络应用程序,struts2 + spring + hibernate,服务器是tomcat。希望用户在IE地址栏乱敲的时候,所敲入的所有未定义的URL都能被程序捕捉到,然后转到一个自制的404错误处理页面。


首先查阅网上的资料,得知可以在web.xml中加入这么一段:



? 404
? /error/404.jsp


这样,所以未找到的404错误都会转到/error/404.jsp接受处理。


但是经过试验,我发现以.action结尾的URL会先被struts2框架所捕获,而不会直接转入web.xml中配置的处理页面。这样,如果在struts.xml没有配置相应的action,则会在tomcat里输出错误:


严重: Could not find action or result
There is no Action mapped for namespace / and action name ******. - [unknown location]


虽然最后也能转入web.xml中配置的处理页面,但是这样在命令台瞎输出一些东西,非常不便于程序的管理和调试,所以还得想办法让struts2框架处理未定义的action。


查阅网上资料,发现可以在struts.xml中,添加一个默认的package,然后在这个默认的package中,添加一个默认的action,让这个action转向404错误处理页面:



?
?
? ? /error/404.jsp
?



默认的package的特点就在于不定义namespace属性,这样所有未定义的namespace都会转向这里。name="default"是为了便于阅读,其实name是什么都可以,也可以为空:name=""。


然后还要在其它已定义的package中也添加默认的action,转向404错误处理页面。这样就可以完全处理所有的404错误了。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Python中的任意参数的实例 下一篇Struts2动态调用DMI及错误解决方法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: