新建一个maven项目
添加maven依赖
<!-- ****************struts2框架包*************** -->
<!-- struts2-core -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.33</version>
</dependency>
<!-- ****************可选*************** -->
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.8</version>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- jsp-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!-- servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
然后建好java和resources根目录包
然后这个时候可以看到当右键resources根目录时多了一个Struts Config的选项
这时就可以新建一个名为struts的struts配置文件了(因为导了包)
如果之前没有在idea中用过struts2的话需要先下载插件:
idea左上角file—settings
然后左边Plugins,输入struts2,下载一下插件
在web.xml设置struts2的过滤器
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 Applicationdisplay-name>
<filter>
<filter-name>struts2filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilter-class>
filter>
<filter-mapping>
<filter-name>struts2filter-name>
<url-pattern>/*url-pattern>
filter-mapping>
<welcome-file-list>
<welcome-file>index.jspwelcome-file>
welcome-file-list>
web-app>
然后创建如图项目结构
tips:因为只有struts2框架所以没办法连后端数据库,所以dao和service就这样空着了
然后先来写一个测试是否能够访问的小例子
action相当于controller
在action包下创建一个测试action
package com.r.action;
/**
* @Author Tuerlechat,
* @Date 2022/11/8
*/
public class TestAction {
public String execute() {
System.out.println("TestAction类被调用了。");
return "test"; //返回的结果
}
}
然后在webapp中新建一个test.jsp
<%--
Created by IntelliJ IDEA.
User: Tuerlechat,
Date: 2022/11/8
Time: 19:27
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Test</title>
</head>
<body>
<h2>我是test页面</h2>
</body>
</html>
然后配置struts2的配置文件
DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="test" namespace="/" extends="struts-default">
<action name="test"
class="com.r.action.TestAction"
method="execute">
<result name="test">/test.jspresult>
action>
package>
struts>
这时候可能会爆红,但不需要管
然后部署tomcat,运行
控制台显示
可以看到控制台显示的时候说明成功访问了test路径,也就是成功进入到了TestAction这个类中的方法
说明搭建struts2框架环境成功
package com.r.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.r.model.User;
import lombok.Getter;
import lombok.Setter;
import java.util.Map;
/**
* @Author Tuerlechat,
* @Date 2022/11/8
*/
@Getter
@Setter
public class HelloStrutsAction extends ActionSupport {
private User user;
@Override
public String execute() throws Exception {
System.out.println("用户名:" + user.getUserName());
System.out.println("密码:" + user.getPassword());
if ("admin".equals(user.getUserName()) && "1234567".equals(user.getPassword())) {
// 将user对象保存在session中
Map<String, Object> session = null;
session = ActionContext.getContext().getSession();
session.put("user_session", user);
return "success";
} else {
return "fail";
}
}
}
实体类
package com.r.model;
import lombok.Data;
@Data
public class User {
private String userName;
private String password;
}
前端页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %>
登录成功
欢迎您,${sessionScope.get("user_session").userName}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录失败
用户名或密码不匹配。
struts2配置文件
DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="helloworld" namespace="/" extends="struts-default">
<action name="hello"
class="com.r.action.HelloStrutsAction"
method="execute">
<result name="success">/success.jspresult>
<result name="fail">/fail.jspresult>
action>
<action name="test"
class="com.r.action.TestAction"
method="execute">
<result name="test">/test.jspresult>
action>
package>
struts>
登录页面
登录成功
登录失败
开启服务器即开启无限404报错循环模式
无论是action,jsp,html什么都不行
全部404,而且后端不报错
说明是项目结构有问题
具体原因不清楚
点击idea左面file下的Project Structure
然后点击Facets,添加Struts2
然后ok
然后按图步骤添加
这两个项目结构配置,添加删除,然后tomcat也重新配置一下,无限循环到好了为止(一般是重新改一次就好了)