1.创建maven项目,然后创建java文件夹和resources资源文件夹
2.pom.xml中引入struts2的依赖
<!-- struts2依赖包 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.1</version>
</dependency>
<!--servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
3.配置struts.xml配置文件,struts.xml文件一般放在src目录下,maven项目都放在resources资源文件夹下
struts.xml配置:
有
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<!-- 所有匹配*.action的请求都由struts2处理 -->
<constant name="struts.action.extension" value="action" />
<!-- 是否启用开发模式 -->
<constant name="struts.devMode" value="true" />
<!-- struts配置文件改动后,是否重新加载 -->
<constant name="struts.configuration.xml.reload" value="true" />
<!-- 设置浏览器是否缓存静态内容 -->
<constant name="struts.serve.static.browserCache" value="false" />
<!-- 请求参数的编码方式 -->
<constant name="struts.i18n.encoding" value="utf-8" />
<!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 -->
<constant name="struts.i18n.reload" value="true" />
<!-- 文件上传最大值 -->
<constant name="struts.multipart.maxSize" value="104857600" />
<!-- 让struts2支持动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- Action名称中是否还是用斜线 -->
<constant name="struts.enable.SlashesInActionNames" value="false" />
<!-- 允许标签中使用表达式语法 -->
<constant name="struts.tag.altSyntax" value="true" />
<!-- 对于WebLogic,Orion,OC4J此属性应该设置成true -->
<constant name="struts.dispatcher.parametersWorkaround" value="false" />
<!-- 默认包 -->
<package name="test" namespace="/testSpace" extends="struts-default">
<!--struts2.5若使用通配符则必须加这一行-->
<global-allowed-methods>regex:.*</global-allowed-methods>
<!--<global-results>-->
<!--<result name="login">/login.jsp</result>-->
<!--<result name="success">/index.jsp</result>-->
<!--</global-results>-->
<action name="test_*" class="com.action.UserAction" method="{1}">
<result name="error">/error.jsp</result>
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
关于2.5版本需要注意的两个问题:
问题一:struts.xml的头部关于版本的地方都需要改成2.5
问题二:若使用通配符必须添加:
<global-allowed-methods>regex:.*</global-allowed-methods>
否则通配符无效,action的请求报404
4.web.xml的配置
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
</web-app>
5.action类
5.1。ActionSupport是自己定义的父类,所有action类继承这个父类
package com;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class BaseAction extends ActionSupport {
public HttpServletRequest request = ServletActionContext.getRequest();
public HttpServletResponse response=ServletActionContext.getResponse();
}
5.2 action类
package com.action;
import com.BaseAction;
import java.util.Map;
public class UserAction extends BaseAction {
public String login(){
System.out.println(request.getParameter("username"));
System.out.println(request.getParameter("password"));
System.out.println("action is coming");
return "success";
}
}
6.项目结构
7.
访问:http://localhost:8081/testSpace/test_login.action即可
参考博客:https://blog.csdn.net/qq_35357001/article/details/62215730