本文参照apache官方描述结合自己理解对struts2进行简单搭建,是对以前学习的总结,也是一种交流,若有不对之处,请指正。
1.所需环境
struts 2需要servletAPI 2.4或更高版本,JSP2.0或更高版本,Java5或更高版本。
2.创建一个web app 并通过maven进行相关依赖的管理
(1)通过maven命令创建相关工程
cmd到dos窗口中进入自行选定目录下,执行mvn archetype:create -DgroupId=my.maven.test -DartifactId=testMaven -DarchetypeartifactId=maven-archetype-webapp 回车
即在该目录下建立了一个名为testMaven的文件夹,该文件夹下目录结构遵循maven标准。
(2)使之成为eclipse工程
cd 进入到testMaven目录,执行mvn eclipse:eclipse,然后打开eclipse中通过import导入。
(3)在IDE中创建一个web application project,其目录结构与maven项目相同,名称叫testMaven.并在pom.xml中加入
<
build
>
<
finalName
>testMaven</
finalName
>
</
build
>
(4)建立相关目录并添加index.jsp
在src/main下建立webapp目录,在webapp下建立index.jsp,修改相关编码,title,body后保存。
内容如下:
<%@ page language="java" contentType="text/html; charset=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>Basic Struts 2 Application - Welcome</title>
</head>
<body>
<h1>Welcome to Struts 2!</h1>
</body>
</html>
(5)修改pom.xml文件,使默认jar方式改为war
<groupId>my.maven.test</groupId>
<artifactId>testMaven</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
(6)打包
在dos窗口下进入到该目录后,执行mvn clean package
(7)部署
将打好的包testMaven.war部署至web容器中,例如tomcat:直接拷贝到webapps下
(8)验证
若在IE地址栏中输入http://localhost:8080/testMaven/index.jsp(端口取决于你的容器)可以看到相关内容,则表明基础环境已经搭建好,但并非strus2的应用环境哦。
3.搭建stust2
(1)添加最必须的strus2的jar包到classpath
通过nexus在3rd party中上传struts2-core-2.3.15.1.jar
具体方法:
参见http://blog.youkuaiyun.com/luju5/article/details/8191308,注意:需点击add artifact后,在点upload artifacts.
然后在pom.xml中添加
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.15.1</version>
</dependency>
(2)添加日志
上传log4j-1.2.11.jar至3rd party库,然后在pom.xml中添加
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.11</version>
</dependency>
(3)在web.xml中添加struts2的过滤器
<
filter
>
<
filter-name
>struts2</
filter-name
>
<
filter-class
>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</
filter-class
>
</
filter
>
<
filter-mapping
>
<
filter-name
>struts2</
filter-name
>
<
url-pattern
>/*</
url-pattern
>
</
filter-mapping
>
注意:/*表示对应用所有的URLs都启用。
(4)创建sturts2.xml(既可通过xml方式也可通过annotation方式)
在src/main/resources下创建struts2.xml,内容为:
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
<
struts
>
<
constant
name
=
"struts.devMode"
value
=
"true"
/>
<
package
name
=
"basicstruts2"
extends
=
"struts-default"
>
<
action
name
=
"index"
>
<
result
>/index.jsp</
result
>
</
action
>
</
package
>
</
struts
>
(5)建立并运行该应用
a.加入依赖8个jar包
struts2-core .2.3.15.1.jar;
common-io.2.0.1.jar;
commons-lang3-3.1.jar;
xwork-core.2.3.15.1.jar
commons-fileupload.1.3.jar
freemarker.2.3.19.jar
ognl.3.0.6.jar
javassist.3.11.0.GA.jar
(期间不断向私服上传相关jar,并修改pom.xml)
最后形成的pom为:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.maven.test</groupId>
<artifactId>testMaven</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>testMaven</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.15.1</version>
</dependency>
<dependency>
<groupId>common.io</groupId>
<artifactId>common-io</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons.lang3</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>com.opensymphony.xwork2</groupId>
<artifactId>xwork-core</artifactId>
<version>2.3.15.1</version>
</dependency>
<dependency>
<groupId>org.apache.common</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.19</version>
</dependency>
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.0.6</version>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.11.0.GA</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.11</version>
</dependency>
</dependencies>
<build>
<finalName>testMaven</finalName>
</build>
</project>
b.打包应用
mvn clean package
c.将testMaven.war部署至容器中
最后的工程实例可在我上传的资源中找到。