Maven配置struts2項(xiàng)目實(shí)例

前面我們已經(jīng)提到了在Eclipse中怎么配置struts2和Eclipse中怎么配置maven拓型。如今要將這兩者結(jié)合起來把鉴,利用maven的優(yōu)點(diǎn)席里,使得struts2項(xiàng)目更易管理遥诉。
  關(guān)于struts2環(huán)境搭建和maven配置參見擴(kuò)展閱讀。

利用maven創(chuàng)建web項(xiàng)目

首先在File中選擇Maven Project

Maven Project

  
  接著選擇工作空間路徑币呵,這里我選擇默認(rèn)路徑

Paste_Image.png

選擇創(chuàng)建webapp項(xiàng)目

Paste_Image.png

根據(jù)項(xiàng)目實(shí)際輸入Group idArtifact id

Paste_Image.png

  最后finish怀愧,這樣就成功創(chuàng)建了一個(gè)maven的web項(xiàng)目。項(xiàng)目創(chuàng)建成功的目錄樹如下

Paste_Image.png

但是余赢,這時(shí)我們注意到Java Resources目錄下沒有出現(xiàn) src/main/javasrc/test/java兩個(gè)目錄芯义,這兩個(gè)目錄是存放java源代碼的目錄。解決辦法如下:

  • 右鍵項(xiàng)目->Build Path->Configure Build Path
Paste_Image.png
  • 進(jìn)入Order and Export目錄妻柒,勾選兩個(gè)缺失的庫(kù)
Paste_Image.png
  • 保存修改并應(yīng)用

可以看到Java Resources目錄下出現(xiàn)了src/main/javasrc/test/java目錄扛拨。這樣才算最終成功創(chuàng)建了maven的web項(xiàng)目。

maven的struts2項(xiàng)目實(shí)例

  • 導(dǎo)入struts2庫(kù)
      在maven中導(dǎo)入庫(kù)不再需要你手動(dòng)復(fù)制庫(kù)文件举塔,只需要你修改pom.xml绑警,maven會(huì)自動(dòng)下載相應(yīng)的庫(kù)到本地。
      pom.xml的修改如下:
<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>com.demo</groupId>
  <artifactId>MavenDemo</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>MavenDemo 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>
    
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
    
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.5.2</version>
    </dependency>
  
  </dependencies>
  <build>
    <finalName>MavenDemo</finalName>
  </build>
</project>

一共導(dǎo)入了三個(gè)依賴包央渣。分別是junit计盒、javax.servletstruts2-core這三個(gè)包芽丹。
 修改后北启,別忘了更新Maven項(xiàng)目。右鍵項(xiàng)目->Maven->Update Project,然后就可以看到maven已經(jīng)將依賴包下載到本地了咕村。

Paste_Image.png
  • 添加動(dòng)作類(Action)
    前面提到src/main/java是用來存放java代碼的场钉,這里我們?cè)诶锩娣乓粋€(gè)簡(jiǎn)單的動(dòng)作類。
Paste_Image.png

登陸動(dòng)作懈涛,只有UserName的getter和setter

package com.demo;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
    public String Name;

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    @Override
    public String execute() throws Exception {
        return SUCCESS;
    }
    
}
  • 添加視圖(View)
    視圖文件存在webapp目錄下逛万,這里我們也只需創(chuàng)建兩個(gè)視圖。
Paste_Image.png

首頁(yè)視圖批钠,用戶輸入姓名宇植,并提交

<%@ taglib uri="/struts-tags" prefix="s"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page pageEncoding="UTF-8"%>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
    <h2>Hello World!</h2>

    <form action="loginAction">
        姓名<input type='text' name="Name"><input type="submit" value="提交">
    </form>
</body>
</html>

結(jié)果視圖,返回用戶姓名

<%@ taglib uri="/struts-tags" prefix="s"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page 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>Welcome</title>
</head>
<body>
    Hello <s:property value="Name" />

</body>
</html>
  • 配置struts.xml
    這里在src/main/resources中創(chuàng)建一個(gè)struts.xml文件价匠,并在其中進(jìn)行修改当纱。
Paste_Image.png

創(chuàng)建一個(gè)動(dòng)作類到視圖的一個(gè)映射

<?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>
    <constant name="struts.devMode" value="true"></constant>  
    <constant name="struts.i18n.encoding" value="UTF-8"></constant> 
    <constant name="struts.locale" value="zh_CN"></constant> 

    <package name="hurricane" extends="struts-default">
        <action name="loginAction" class="com.demo.LoginAction" method="execute">
         <result>  
           /result.jsp
        </result>  
        </action>
    </package>
</struts>
  • 最后修改web.xml
      web.xml是一個(gè)任何對(duì)struts2請(qǐng)求的入口點(diǎn)。Struts2應(yīng)用程序的入口點(diǎn)是在web.xml中定義的過濾器踩窖。這些都需要在web.xml中進(jìn)行聲明
Paste_Image.png

web.xml的代碼如下:

<web-app>
  <display-name>Archetype Created Web Application</display-name>
    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <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-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

注:不同版本的struts2這里對(duì)應(yīng)的過濾器不同坡氯,可能需要針對(duì)專門查看專門的struts2說明。

  • 運(yùn)行項(xiàng)目實(shí)例
      右鍵項(xiàng)目->Run->Run as Server就可以看到項(xiàng)目運(yùn)行情況洋腮,運(yùn)行情況如下:
index.jsp
result.jsp

  
  至此完成了Maven中struts2實(shí)例的配置箫柳。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市啥供,隨后出現(xiàn)的幾起案子悯恍,更是在濱河造成了極大的恐慌,老刑警劉巖伙狐,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涮毫,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡贷屎,警方通過查閱死者的電腦和手機(jī)罢防,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唉侄,“玉大人咒吐,你說我怎么就攤上這事∈艋” “怎么了恬叹?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)同眯。 經(jīng)常有香客問我绽昼,道長(zhǎng),這世上最難降的妖魔是什么须蜗? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任硅确,我火速辦了婚禮肿孵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疏魏。我一直安慰自己,他們只是感情好晤愧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布大莫。 她就那樣靜靜地躺著,像睡著了一般官份。 火紅的嫁衣襯著肌膚如雪只厘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天舅巷,我揣著相機(jī)與錄音羔味,去河邊找鬼。 笑死钠右,一個(gè)胖子當(dāng)著我的面吹牛赋元,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播飒房,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼搁凸,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了狠毯?” 一聲冷哼從身側(cè)響起护糖,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嚼松,沒想到半個(gè)月后嫡良,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡献酗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年寝受,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凌摄。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羡蛾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锨亏,到底是詐尸還是另有隱情痴怨,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布器予,位于F島的核電站浪藻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏乾翔。R本人自食惡果不足惜爱葵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一施戴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萌丈,春花似錦赞哗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至度迂,卻和暖如春藤乙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惭墓。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工坛梁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腊凶。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓划咐,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親吭狡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子尖殃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容