在网上看了很多IDEA搭建struts2的教程,搭建后总是无法启动服务器,下面介绍2021版本如何正确搭建struts2框架。

一、首先去struts2官网下载所需包

官网传送门

下载后进行解压

all是完整包,体积较大;min是官方提供的对于初学者的基础包,大家自行选择,这里我选的是min

二、下载Struts2插件

因为更新到2021版本之后,官方已经取消图中红框的选项了,要实现如图的效果需要下载插件Struts2

注意这里的Tomcat版本,一定要和下面的web.xml版本对应,否则可能会出问题,具体可以看我的关于struts2的另一篇文章

记-在用IntelliJ IDEA搭建Struts2框架时遇到的一些问题

从设置里下载插件

三、创建struts2项目

创建项目

找到你解压后的包并全选,然后点击OK

然后给项目命名,这里示例命名为demo,然后点击Finish

创建完成后,打开Project Structure选择Facets>Struts 2,点击加减号旁边的小铅笔标签,将struts2-defalut.xml与struts.xml放在同一个文件里

创建完成后会自动在src和WEB-INF下产生struts.xml和web.xml配置文件,然后我们对其进行修改web.xml内容改为以下代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0">
</web-app>

然后进行测试实例

  • 编写login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>struts2小例子</title>
</head>
<body>
<form method="post" action="login.action">用户名:<input name="userName" type="text"/><br/>密码:<input name="password" type="password"/><br/><input type="submit" value="登录"/>
</form>
</body>
</html>
  • 编写success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>成功页面</title>
</head>
<body>
登录成功
</body>
</html>
  • 编写JavaBean类LoginBean.java
package com.demo.bean;/*** @author 张子* @date 2021/10/1 20:09*/public class LoginBean {private String userName;private String password;public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public boolean login(String userName, String password) {if ("qq".equals(userName) && "123".equals(password)) {return true;}return false;}
}
  • 编写action类LoginAction.java
package com.demo.action;/*** @author 张子* @date 2021/10/1 20:10*/import com.demo.bean.LoginBean;public class LoginAction {private String userName;private String password;public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String execute() throws Exception {LoginBean l = new LoginBean();if (l.login(userName, password)) {return "success";}return "error";}
}
  • 配置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配置都应放在package下,name定义包名,extends定义继承包空间 --><package name="xx" extends="struts-default"><!-- Action配置可以有多对;name是对业务控制器命名在表单中指定的action的名字需要与该名字一致;class指定Action类的位置 --><action name="login" class="com.demo.action.LoginAction"><!-- 定义两个逻辑视图与物理资源之间的映射name值是Action中execute()方法返回的结果,即逻辑视图 --><result name="success">/success.jsp</result><result name="error">/login.jsp</result></action></package>
</struts>
  • 配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><display-name>demo</display-name><!-- 设置欢迎界面,登录网站时首先展示的页面 --><welcome-file-list><welcome-file>/login.jsp</welcome-file></welcome-file-list><filter><!-- 配置struts2核心控制器的名称 --><filter-name>struts</filter-name><filter-class><!-- 这是struts-2.5及以上版本的控制器 -->org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><!-- struts2控制器的名称 --><filter-name>struts</filter-name><!-- 拦截所有的以action结尾的请求,让静态资源可以正常加载 --><url-pattern>*.action</url-pattern></filter-mapping></web-app>

如果复制完web.xml的代码后,标签前面报红的话,把注释删掉即可

运行结果


我的个人博客:https://zhangz1.top

IntelliJ IDEA2021.2搭建struts2框架相关推荐

  1. 搭建struts2框架

    struts是一个经典的MVC模式 拦截器比过滤器拦截的力度更大 搭建struts2框架 1.引入lib包 9个(2.3版本的) common-fileupload; common-io; commo ...

  2. 使用Maven搭建Struts2框架的开发环境

    一.创建基于Maven的Web项目 我使用的是MyEclipse8.5的版本,创建好的Web项目如下所示: 我们知道,一个标准的Maven项目是必须包括[src/main/java],[src/mai ...

  3. 全网最强maven教程-使用Maven搭建Struts2框架的开发环境

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven的主要目标是希望开发人员能在最短的时间内理解开发的完整状态.为了达到这个目标,Mav ...

  4. 在eclipse中搭建struts2框架的详细过程

    今天想学习struts2框架,所以搭建了一个struts框架,记录一下搭建struts2的详细过程. 一.搭建环境:   Eclipse:Mars.1 Release(4.5.1) JDK: jdk1 ...

  5. 【Struts2】一_idea快速搭建struts2框架

    文章目录 什么是SSH框架? Struts2框架 1.struts2的环境搭建 `1.1 创建web项目(maven),导入struts2核心jar包` `1.2 配置web.xml(过滤器),是st ...

  6. Idea 2022 搭建Struts2 框架手把手教程!新鲜出炉!!

    目录 介绍 Struts2的发展史 Struts2官网 第一个Struts2程序(Idea) Struts2 介绍 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servl ...

  7. Maven构建Struts2框架的注意事项

    [本人出错点:404,就是在web.xml配置文件中少配置了struts.xml的路径] 1.创建Maven,搭建Struts框架,实现最基本的Hello World 在pom.xml中加入strut ...

  8. Struts2框架--学习笔记(上):搭建struts2工程、struts2基本概念、struts2对页面数据的操作

    概述: Struts2框架应用于javaee三层框架中的web层.是在Struts1和webwork基础上发张的一个全新的框架. 一.搭建一个最基本的struts2工程步骤: 1.导入基本的jar包依 ...

  9. Struts2框架搭建

    使用Struts2版本为:struts-2.3.16.3 下载地址:http://struts.apache.org/ 一.向web项目中添加struts2依赖库 commons-fileupload ...

  10. 【快速搭建系列】idea快速搭建SSH2框架(struts2+spring5+hibernate5)

    [快速搭建系列]idea快速搭建SSH2框架(struts2+spring5+hibernate5) 压了很久的文,都差点忘记了 网上关于SSH的框架教程五花八门的,自己踩了一周多的坑说什么也要搞一个 ...

最新文章

  1. stm32.cube介绍
  2. HBase rowkey概念
  3. 优先级调度算法实现_一篇讲透嵌入式操作系统任务调度
  4. winform在表格中输入一个完整的时间字段_【ArcGIS小技巧视频教程】(5):在ArcGIS中挂接其他数据...
  5. Aizu 2170 Marked Ancestor
  6. OpenGL ES之GLSL实现仿抖音“缩放”“灵魂出窍”“抖动”“闪白”“毛刺”“幻觉”等动态滤镜效果
  7. JAVA项目答辩的自我评价_毕业答辩的英文自我评价范文
  8. Seata AT模式
  9. 去掉ExpandableListView的箭头图标
  10. js与c语言效率_JavaScript比c语言的性能差了多少?
  11. fft matlab 区别,Matlab中fft与fwelch有什么区别?如何用fft求功率谱?
  12. 熬夜写代码,不如换女装入 GitHub 获上千 Star?
  13. 站点页面Service Unavailable 503的一种解决方法
  14. c语言 json_dumps,关于json.dumps中的参数,例如ensure_ascii
  15. Let’s Encrypt 推动了 HTTPS 的普及
  16. Java自学 day02
  17. Java学习-32(Java高级特性知识总结)
  18. 用谷歌浏览器如何下载哔哩哔哩中的视频
  19. 港科夜闻丨香港科大团队最新研究:双色发射AIEgen用于无标记特异性识别dsDNA和SNPs检测...
  20. 小米Civi的女性突围战

热门文章

  1. SQL:从入门到“精通”
  2. 可靠性工程基础 修订版 课后答案 (刘品)
  3. 常用设计模式Python实现
  4. MFC学习——环境安装
  5. tcping下载安装步骤,如何ping端口,tcping详解
  6. 【深度学习论文笔记】Depth Map Prediction from a Single Image using a Multi-Scale Deep Network
  7. 精小的无线接收模块22MM直径硬币大小QI协议
  8. Microsoft Project项目管理实践
  9. ttf能改成gfont吗_如何修改TTF字体
  10. 最新免费可使用在线音乐网站+多解析源码