笔记仓库:https://github.com/nnngu/LearningNotes
简介
这篇文章主要讲如何在 IntelliJ IDEA 中使用 Struts2,文章使用的 Struts2 的版本是2.5.14.1,与其他的版本有一点差别,在文章里已经说明。
环境
IntelliJ IDEA 2017.2.6
jdk1.8.0_101
Tomcat 8.0.38
添加依赖
依赖的 jar 包有如下几个:
commons-fileupload-1.3.3.jar
commons-io-2.5.jar
commons-lang3-3.6.jar
freemarker-2.3.26.jar
log4j-api-2.9.1.jar
ognl-3.1.15.jar
struts2-core-2.5.14.1.jar
javassist-3.20.0-GA.jar
使用 Maven 构建一个项目,并且在 pom.xml 添加如下依赖:
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.26-incubating</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.1.15</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.14.1</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.20.0-GA</version>
</dependency>
注意:Struts2.5 与之前的版本有点不同,之前的版本还需要xwork-core.jar。Struts2.5不需要它,因为Struts2.5把xwork的源码合并到了struts2-core中。Struts2.5之前使用logging API,而 Struts2.5 用 log4j API 取代。
在web.xml中配置Struts2框架的核心拦截器StrutsPrepareAndExexuteFilter
<?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_3_1.xsd"
version="3.1">
<!--配置struts2的核心拦截器-->
<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-->
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
注意:Filter的完整类名是:org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
Struts2.5 以前是:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
新建一个业务控制类 HelloWorldAction ,继承自com.opensymphony.xwork2.ActionSupport , 内容如下:
package com.nnngu.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport {
@Override
public String execute() throws Exception {
System.out.println("正在执行的Action");
// 返回视图 SUCCESS,这是框架定义的
return SUCCESS;
}
}
创建好的 Action 类需要在 Struts2 的核心配置文件中进行配置
Struts2 的核心配置文件为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>
<package name="default" namespace="/" extends="struts-default">
<!--访问时使用 localhost:8080/helloworld 访问-->
<action name="helloworld" class="com.nnngu.action.HelloWorldAction">
<!--结果集,即action类中 SUCCESS 返回的视图-->
<result>
/result.jsp
</result>
</action>
</package>
</struts>
新建一个 result.jsp 文件,用来显示 action 返回的视图
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Action Result</title>
</head>
<body>
<h1>恭喜!成功配置好基本的struts2 环境</h1>
<h2>Hello nnngu!</h2>
</body>
</html>
最后运行项目,在浏览器访问
在浏览器访问 http://localhost:8080/helloworld
展现出来的内容是 result.jsp 的内容。
控制台输出 Action 的打印内容
到此,Struts2 就配置完成了。
Struts2 官方文档:http://struts.apache.org/getting-started/
相关推荐
这个“struts2简单例子”是初学者理解Struts2工作原理和核心概念的一个很好的起点。让我们深入探讨一下Struts2的基础知识。 1. **MVC架构**: MVC模式是软件设计中的一个经典模式,它将应用逻辑分为三个主要部分:...
这个"struts2的一个简单的例子"旨在帮助初学者理解并掌握Struts2的核心概念和工作原理。以下是对这个例子的详细解释: 一、Struts2框架概述 Struts2是基于MVC(Model-View-Controller)设计模式的开源框架,它继承...
Struts2是一个强大的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用程序。它的设计目标是简化开发过程,提供更灵活的控制流,并促进良好的编程实践。手动配置Struts2涉及多个步骤,下面我们将...
本示例是一个使用MyEclipse6开发的简单Struts2登录应用,旨在帮助初学者了解如何在实际项目中集成和使用Struts2框架。 首先,Struts2的核心是Action类,它负责处理用户请求。在这个登录例子中,我们可能会有一个名...
Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。在Struts2框架中,配置文件起着至关重要的作用,它们定义了应用程序的行为和结构。本篇文章将深入探讨Struts2的核心配置...
本教程将指导新手配置第一个基于Struts2的简单登录程序。 首先,你需要从Apache Struts的官方网站下载Struts2的软件包。在编写此教程时,最新版本为Struts 2.0.11.2,但请注意,随着时间推移,可能会有新的版本发布...
在这个小例子中,我们将深入探讨如何利用Struts2的Annotation配置来构建一个简单的应用。 首先,让我们了解什么是Annotation。在Java中,Annotation是一种元数据,它提供了一种安全的方式向编译器、JVM或者第三方...
总结,"struts2简单实例"展示了如何使用Struts2框架构建一个简单的学生信息查询功能,涵盖了配置文件、Action实现、数据传输以及视图展示等多个方面,是学习和理解Struts2工作原理的好例子。通过这个实例,开发者...
这个"struts2的简单例子"是一个适合初学者理解并实践Struts2框架的基础教程。 首先,我们需要了解Struts2的核心概念: 1. **Action类**:在Struts2中,Action类是业务逻辑的载体,它是控制器层的主要组成部分。一...
一个简单的零配置Struts2 Action类可能如下所示: ```java package com.example.action; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; ...
实践这个例子,你可以了解到如何设置一个简单的Struts2应用,从而为进一步学习更复杂的特性如国际化、文件上传、异常处理等奠定基础。 总之,Struts2是一个强大的MVC框架,它的核心在于`struts.xml`配置文件,通过...
在这个简单例子中,我们可能会看到在Action类的属性上使用了Struts2的验证注解,如`@Valid`和`@Field`,或者有一个对应的XML验证文件(通常命名为actionName-validation.xml)。这些注解或XML规则定义了字段的验证...
接着,创建一个简单的`struts.xml`配置文件,它是Struts2的核心配置文件,用于定义动作(Actions)和结果(Results)。 3. **配置Struts2** 在`struts.xml`文件中,我们需要至少定义一个Action,例如: ```xml ...
Struts2是一个强大的MVC框架,它通过提供配置文件来管理应用程序的行为,使得开发者能够灵活地定义Action、拦截器和结果映射。本文将深入探讨Struts2的配置文件,特别是`struts.xml`文件中的关键元素和属性。 在...
Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、模块化和高度控制的MVC(模型-视图-控制器)结构的应用程序。它继承了Struts1的优点,并结合了其他框架如WebWork的核心特性,提供了更高效、灵活的...
Tiles是Struts2的一个插件,用于创建复杂的布局和模板。在Tiles示例中,你会看到如何定义和使用Tiles定义,这些定义可以看作是页面模板。Tiles允许你将一个大的页面拆分为多个小的组件,每个组件可以独立设计和重用...
下面,我们将详细探讨如何在MyEclipse中使用Struts2实现一个简单的登录功能。 首先,我们需要创建一个新的MyEclipse项目,命名为"Prj12",这将作为我们的工作基础。在项目创建完成后,我们需要引入Struts2的依赖库...
在压缩包中的"example"文件可能包含了一个或多个使用Struts2标签的实际示例,可以参考这些示例来理解和学习Struts2标签的用法。通过实践,你会更好地掌握这些标签的功能和用法,从而在开发过程中更加得心应手。
Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、结构清晰的MVC(模型-视图-控制器)架构应用。这个“struts2完整例子”压缩包提供了学习和理解Struts2核心概念的实际示例。让我们深入探讨一下...
Struts 2是一款非常流行的Java Web开发框架,它在MVC设计模式的基础上提供了一套强大的控制器层解决方案。在传统的Struts 2应用中,我们...通过学习和实践这些例子,你可以更好地理解和掌握Struts 2的注解配置技术。