将pom.xml 文件修改为2.5.30版本
<properties>
<struts2-version>2.5.30struts2-version>
properties>
<dependencies>
<dependency>
<groupId>org.apache.strutsgroupId>
<artifactId>struts2-spring-pluginartifactId>
<version>${struts2-version}version>
dependency>
<dependency>
<groupId>org.apache.strutsgroupId>
<artifactId>struts2-spring-pluginartifactId>
<version>${struts2-version}version>
dependency>
dependencies>
2.修改web.xml
把org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 中的.ng 去掉 修改为
<filter>
<filter-name>struts2filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilter-class>
filter>
3.修改struts.xml
把原先的头部信息修改为:
DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">
4.方法访问不到的问题(404)
需要在每个action配置文件中加上 strict-method-invocation=“false”
再加上
regex:.*
<package name="projectstruts" extends="struts-default" strict-method-invocation="false">
<global-allowed-methods>regex:.*global-allowed-methods>
package>
5. 依赖冲突,版本问题
依赖冲突需要根据自己的项目引入的依赖来进行排除
举例:
版本问题:
我升级的时候有commons-lang3 版本问题
需要将版本升为3.8.1
<dependency>
<groupId>org.apache.commonsgroupId>
<artifactId>commons-lang3artifactId>
<version>3.8.1version>
dependency>
其他问题没遇到,遇到的小伙伴可以在下方评论,帮助他人快速解决问题。
2022/04/20补充
6. 新版用法(HttpParameters)老版本的是:
Map<String, Object> params = ServletActionContext.getContext().getParameters();
新版本的是:
HttpParameters params = ServletActionContext.getContext().getParameters();
在新版本如果想将HttpParameters转为Map 可以调用 toMap();方法,如下:
Map<String, String[]> stringMap = params.toMap();
或者遍历存入map ,如下:(提倡)
HttpParameters fileMaps = ServletActionContext.getContext().getParameters();
Map<String, Object> fileMap = new HashMap<>();
fileMaps.keySet().stream().forEach(new Consumer<String>() {
@Override
public void accept(String s) {
fileMap.put(s, fileMap.get(s));
}
});
File[] files = (File[]) fileMap.get(key);
若有错误,希望大佬指出。
对你有帮助给点个👍再走呗。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)