1.java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter报错问题:
造成问题的原因:
1.没有加载相应.jar包。
2.加载的.jar包的版本问题。
解决方法:
方法一:
1.把struts2-core-2.3.20.jar包复制放到项目下的WebContent-->WEB-INF-->lib目录,粘贴。
找到WebContent-->WEB-INF-->web.xml文件,找到
选中org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter按Ctrl+Shift+T
当出现下面情况时,说明找到了并加载了StrutsPrepareAndExecuteFilter这个类。
再重新运行,那么问题就解决了。如果还没有解决,请看第二种方法:
方法二:
检查一下struts2-core.jar包的版本问题
struts2.1.3以前版本和之后版本:当前版本是2.1.3之后的版本
struts2中StrutsPrepareAndExecuteFilter 异常如果是2.1.3之前的版本用org.apache.struts2.dispatcher.FilterDispatcher,
否则org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。
因为从Struts2.1.3开始,将废弃ActionContextCleanUp过滤器,而在StrutsPrepareAndExecuteFilter过滤器中包含相应的功能。在web.xml中做修改红色字体部分
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
通过上面两种方法,就可以解决java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter报错问题。