更新:善用控制台查看错误信息
---------------------------------------------
原因:Java Build Path没有导入正确的jar包或者导入了但没有把相应的包部署到WEB-INF的lib目录下
解决方案:
我是直接将下载的struts-2.3.31appsstruts2-blank.war解压,找到其目录下的WEB-INFlib,放在一个单独文件夹内(里面并没有commons-logging-1.1.3.jar,但是也没报错)
新建User Library(以后新建项目就可直接用):点击Window--Preferences--Java--Build Path--User Libraries--New--输入名称确定--点击Add External JARs导入包。
Build Path的配置:右击项目--Properties--Java Build Path--Add Library--User Library--选择刚才新建的
Deployment Assembly的配置:右键项目--properties--Deployment Assembly,直接从Java Build Path中Add
(或者手动复制jar包到WEB-INF/lib目录下,不过这种方式有个坑:如果你不是在Eclipse里右击lib粘贴的,而是在文件资源管理器里复制粘贴,那么Eclipse里不会自动刷新lib目录,即使重启服务器还是404的错误,这一点非常不人性化!)
重启服务器重新运行就可以了。
整个过程,并没有在web.xml中配置servlet。
其他可能的原因:
1.web.xml中<filter-class>配置错误:
具体介绍:https://stackoverflow.com/a/37537936/8243553
2.struts.xml内规范文件版本号错误:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">