更新:善用控制台查看錯誤信息
---------------------------------------------
原因:Java Build Path沒有導入正確的jar包或者導入了但沒有把相應的包部署到WEB-INF的lib目錄下
解決方案:
我是直接將下載的struts-2.3.31\apps\struts2-blank.war解壓,找到其目錄下的WEB-INF\lib,放在一個單獨文件夾內(里面並沒有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">