1.下載相關jar包
進入download頁面,下載Struts-x.x.xx-min-lib.zip包。
2.創建web項目
2.1 用Eclipse創建Dynamic Web Project
Runtime可以配置tomcat的版本、路徑、jre包
Dynamic web module version 選擇的是servlet版本
src存放資源文件 class存放編譯後的文件 一般用默認配置
WebModules頁面 最好選擇上默認生成web.xml選項
2.2 引用相關jar包
step1 把這些jar包放在自己指定的lib目錄中,如D:\develop\external_libs\struts-2.3.32
step2 項目引用
右擊項目名稱->properties->Java Build Path->Libraries
Add External JARS->項目名稱->D:\develop\external_libs\struts-2.3.32
選中目錄下所有的jar包,確定
fileupload上傳下載包
io包
lang包
logging日誌包
freemarker 模板引擎
core核心包
xwork包 有些類基於此包實現的
ognl 可以理解爲el表達式
assit包 解析Java類的包
3. 創建並完善相關配置文件
3.1 在src中創建Struts的核心配置文件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>
</struts>
3.2 配置web.xml
web項目在啓動tomcat時,第一個加載的文件是web.xml
<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>
CTRL+單擊 filer-class的名字出現鏈接代表能夠找到這個filter,否則可能是名字寫錯了
4. 創建Action並測試啓動
4.1 創建Action
新建一個類new class
填寫package包名如:com.hello.action
填寫Name如:HelloWorld
Superclass:搜索ActionSupport,選擇項目中的ActionSupport類繼承
shift+alt+s 選則Override and implement method重寫execute()方法
package com.hello.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport {
@Override
public String execute() throws Exception {
System.out.println("執行Action");
return SUCCESS;
}
}
4.2 在struts.xml配置文件中配置映射
1.先配置包名、命名空間、擴展
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="helloworld" class="com.imooc.action.HelloWorld">
<result>/result.jsp</result>
</action>
</package>
</struts>
2.新增result.jsp
這樣就成功創建了action和視圖
3.發佈
右擊項目 Debug as->Debug on Server
此時訪問http://localhost:8080/hello/helloworld.action
就能看到result.jsp頁面
struts.xml中的屬性及其描述
屬性 描述
name(必需) 爲package的唯一標識
extends 指定package繼承另一package的所有配置。通常情況下,我們使用struts-default作爲package的基礎。
abstract 定義package爲抽象的。如果標記爲true,則package不能被最終用戶使用。
namespace Actions的唯一命名空間