struts2 使用Maven搭建Struts2框架的開發環境
一、建立基於Maven的Web專案
我使用的是MyEclipse8.5的版本,建立好的Web專案如下所示:
我們知道,一個標準的Maven專案是必須包括【src/main/java】,【src/main/resources】,【src/test/java】,【src/test/resources】這四個Source Folder的,而建立好的專案當中只有一個(不懂為啥MyEclipse8.5沒有幫我生成【src/main/java】),所以我們還需要手動建立剩下的【src/main/java】,【src/test/java】,【src/test/resources】這三個Source Folder,以建立【src/main/java】為例,具體步驟如下:
點選【Finish】按鈕完成建立,如下圖所示:
【src/test/java】,【src/test/resources】也是採用相同的方式進行建立,這裡用一張動態的gif動畫演示一下建立過程,如下圖所示:
最終效果如下:
這樣我們的【Struts2AnnotationMavenProject】專案才是一個標準的Maven專案,我們可以使用Maven來構建一下【Struts2AnnotationMavenProject】專案,看看能否正常構建成功,如下圖所示:
從執行結果顯示,專案可以正常構建成功。
二、搭建Struts2的開發環境
2.1、新增Struts2框架的核心jar包
由於我們是使用Maven管理專案中的jar包的,所以我們需要在pom.xml檔案中新增Struts2框架的核心jar包的描述。
編輯pom.xml檔案,新增新增Struts2框架的核心jar包的描述,如下:
<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.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>me.gacl</groupId>
<artifactId>Struts2AnnotationMavenProject</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Struts2AnnotationMavenProject Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Struts2的核心包 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.16</version>
</dependency>
</dependencies>
<build>
<finalName>Struts2AnnotationMavenProject</finalName>
</build>
</project>
pom.xml檔案中標紅的部分就是我們新增的Struts2框架的核心jar包的描述,儲存pom.xml檔案,此時Maven就會自動幫我們把struts2-core這個jar包依賴的其他相關jar包匯入到我們的Web專案當中,如下圖所示:
2.2、新增Struts2框架的配置檔案struts.xml
Maven約定,web專案開發中的使用到的配置檔案都要放到【src/main/resources】這個Source Folder下,如下圖所示:
編輯struts.xml檔案,新增常用的配置項,配置資訊如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.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="basePackage" extends="struts-default">
</package>
</struts>
2.3、convention-plugin和config-browser-plugin外掛介紹
以前用struts2框架開發專案時,每次編寫好一個Action,就需要在struts.xml檔案中配置Action,而convention-plugin這個外掛的出現出現後,就不再需要在struts.xml檔案中配置Action了,convention-plugin提供了一種非常方便的註解方式來配置Action類。
convention-plugin採用”約定大於配置”的思想,只要我們遵守約定,完全可以少寫配置甚至不寫配置;config-browser-plugin外掛則用於方便的瀏覽專案中的所有action及其與 jsp view的對映。這二個外掛結合起來學習,能很方便的搞定struts2中各種複雜的action-view對映需求,所以現在使用Struts2框架開發Web應用時,一般都會配合這兩個外掛一起使用。
2.3.1、convention-plugin和config-browser-plugin外掛使用
為了方便使用Struts2框架,我們最好在專案中配合convention-plugin、 config-browser-plugin這兩個外掛一起使用,在maven專案的pom.xml中加上這兩個外掛的jar包描述,如下:
<!-- convention-plugin外掛,使用了這個外掛之後,就可以採用註解的方式配置Action -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.3.20</version>
</dependency>
<!--config-browser-plugin外掛,使用了這個外掛之後,就可以很方便的瀏覽專案中的所有action及其與 jsp view的對映-->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-config-browser-plugin</artifactId>
<version>2.3.20</version>
</dependency>
2.4、在web.xml檔案中配置Struts2的核心過濾器
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>Archetype Created Web Application</display-name>
<!-- add struts2 configiguration -->
<filter>
<description>配置struts2的核心過濾器</description>
<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>*.action</url-pattern>
</filter-mapping>
<!-- end add struts2 configuration-->
</web-app>
2.5、測試Struts2框架是否搭建成功
編寫一個TestAction類,用於測試
package me.gacl.action;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
@ParentPackage("basePackage")
//使用convention外掛提供的@Action註解將一個普通Java類標識為可以處理使用者請求的Action類
@Action
//使用使用convention外掛提供的@Namespace註解指明這個Action類的名稱空間
@Namespace("/")
public class TestAction {
/**
* test方法的訪問方式:http://localhost:8080/Struts2AnnotationMavenProject/test!test
* MethodName: test
* Description:
* @author xudp
*/
public void test(){
System.out.println("呼叫了TestAction裡面的test方法");
}
}
在將類使用@Action註解標識時發現@Action註解必須使用JDK1.6才行,所以我修改了JDK的版本,改成使用JDK1.6的,如下圖所示:
由於使用了convention-plugin外掛的提供的註解方式對映Action的訪問路徑,所以我們不再需要像以前那樣在Struts.xml檔案中配置Action的訪問路徑了,測試結果如下:
可以看到,我們的TestAction裡面的test方法已經成功呼叫了,這說明我們的Struts2框架的開發環境搭建成功。並且我們也感受到了使用convention-plugin外掛開發基於註解的Struts2程式是非常方便和快捷的。
我們的專案中還使用到了config-browser-plugin外掛,下面我們來感受一下這個config-browser-plugin外掛帶來的便利之處
輸入訪問URL:http://localhost:8080/專案名/config-browser/index.action來訪問config-browser-plugin外掛提供的檢視頁面,例如:http://localhost:8080/Struts2AnnotationMavenProject/config-browser/index.action,這樣就可以進入config-browser-plugin外掛提供的檢視介面,如下圖所示:
以上就是在MyEclipse中使用Maven搭建Struts2框架的開發環境的相關介紹,使用了Maven之後,大大提高了框架開發環境的搭建速度,起碼我們不再需要關心Struts2框架的開發環境需要哪些jar包,我們只需要引入Struts2的核心jar包struts2-core,然後Maven就會自動幫我們把struts2-core這個jar包的相關依賴jar全部加入到專案中,將web應用中的jar包全部交給Maven進行管理是一種非常好的做法,現在主流的專案都是採用Maven進行構建的。
相關文章
- 【Struts2】--專案環境搭建
- struts2環境搭建---【小白系列】0基礎到熟練應用struts2框架(一)框架
- IDEA使用Maven搭建spark開發環境(scala)IdeaMavenSpark開發環境
- Struts2框架的基本使用框架
- 【Struts2複習知識點一】-配置struts2環境
- Struts2的框架框架
- struts2框架搭建學習遇到的問題框架
- Maven 環境搭建Maven
- MAVEN環境搭建Maven
- Struts2,Hibernate,Spring 環境配置Spring
- Struts2工程搭建
- 基於 idea+maven 的 jmeter 開發環境搭建IdeaMavenJMeter開發環境
- Maven基礎:Maven環境搭建及基本使用(1)Maven
- VSCode+Maven+Hadoop開發環境搭建VSCodeMavenHadoop開發環境
- Struts2開發基礎
- windows 以太坊開發框架Truffle環境搭建Windows框架
- 使用 Docker 搭建本地開發環境!Docker開發環境
- 使用 Docker 搭建 PHP 開發環境DockerPHP開發環境
- 使用webpack搭建react開發環境WebReact開發環境
- 【Struts2框架學習】框架
- JAVAEE框架學習——Struts2——Action API 使用Java框架API
- 搭建vue的開發環境Vue開發環境
- WinCE開發環境的搭建開發環境
- 使用 PhpStorm + Docker 搭建開發環境PHPORMDocker開發環境
- 使用 Rainbond 搭建本地開發環境AI開發環境
- 使用sublime搭建python開發環境Python開發環境
- Struts2框架學習(一)框架
- Vue環境搭建(使用完整框架)Vue框架
- PHP開發環境 03 - 使用KFKDock搭建PHP專案環境PHP開發環境
- 使用struts2框架,web.xml怎麼配置框架WebXML
- Struts框架_9 Struts2的驗證框架
- Maven環境搭建和介紹Maven
- 搭建Maven和Nexus環境Maven
- 1 – 搭建開發環境開發環境
- rollup 開發環境搭建開發環境
- 搭建go開發環境Go開發環境
- Androdi開發環境搭建開發環境
- 前端開發環境搭建前端開發環境