1. 程式人生 > >Struts2開發步驟

Struts2開發步驟

mapping 攔截 prop str pattern tom height 團隊開發 返回結果

第一步:新建we項目

新建名稱為“Struts"的web工程,新建方法:File->New->Web Service Project->Profect Name中輸入:Struts->點擊Finish按鈕完成新建。

第二步:導入架包

(1)在Struts工程的右鍵菜單上選擇"Properties"命令,打開”Properties for Struts2"對話框,在struts2解壓後的lib目錄中選擇如下13個文件:asm-3.3.jar,asm-commons-3.3.jar,asm-tree-3.3.jar,commons-fileupload-1.3.jar(文件上傳時需要使用),commons-io-2.2.jar( Java io擴展),commons-lang3-3.1.jar( 包含了一些數據類型的工具類),commons-logging-1.1.3.jar(日誌處理),freemarker-2.3.19.jar( Struts2的標簽模板使用類庫),javassist-3.11.0.GA.jar(對字節進行處理),log4j-1.2.17.jar,ognl-3.0.6.jar( Struts2使用的一種表達式語言類庫),struts2-core-2.3.16.jar(Struts2框架的核心類庫),xwork-core-2.3.16.jar( XWork類庫,Struts2的構建基礎)

(2)再把上面13個jar包考到“WebRoot\WEB-INF\lib”目錄下

第三步:配置web.xml文件
StrutsPrepareAndExecuteFilter//struts準備和執行的一個過濾器
(導包:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)
<!-- Struts2核心過濾器配置 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>/org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- <url-pattern></url-pattern>過濾的請求格式 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern></url-pattern>
</filter-mapping>
第四步:開發視圖層頁面
創建一個login.jsp
<div align="center">
<form action="" method="post">
用戶名:<input type="text" name=""/><br/>
密 碼:<input type="password" name=""/><br/>
<input type="submit" value="登錄"/>
</form>
</div>
第五步:開發控制層Action

實現Action(import com.opensymphony.xwork2.Action;)

public class HelloWorldAction implements Action {
// 用戶輸入的姓名
private String name = "";
// 向用戶顯示的信息
private String message = "";
public String execute() {
// 根據用戶輸入的姓名,進行"Hello,XXXX!"的封裝
this.setMessage("Hello,"+this.getName()+"!");
// 處理完畢,返回導航結果的邏輯名
return "success";
}

//省略setter、getter方法
}
第六步:src下配置Struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 打開方法的動態調用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- Struts-default裏面是一些攔截器的配置 ("/")代表根目錄-->
<package name="mypackage" extends="struts-default" namespace="/">
<action name="user" class="com.zking.action.UserAction">
<!--成功跳轉到login_success.jsp頁面-->
<result name="success" type="">login_success.jsp</result>
<!--失敗跳轉到login_success.jsp頁面-->
<result name="fail" >login_fail.jsp</result>
</action>
</package>
</struts>

第八步:發布項目

按"F11"發布項目到Tomcat服務器或右鍵單擊項目->Run As->Myeclipse Server Application->Tomcat6.0->OK即可。

struts2的執行流程:

  瀏覽器發起請求--->服務器接收並處理請求--->項目的web.xml 中匹配過濾器--->匹配是否有對應的Action--->生成對應的Action對象--->調用action對象的處理方法--->返回結果。

詳細流程圖:

技術分享圖片

<struts>
<!-- 
        constant 常量配置
        struts.devMode 設置是否是開發模式
     -->
    <constant name="struts.devMode" value="true" />
    <!-- 設置編碼 -->
    <constant name="struts.i18n.encoding" value="utf-8"/>
    <!-- 設置action的擴展名 -->
    <constant name="struts.action.extension" value="action,,do"/>
    <!-- 
        package表示一個包每個包下可以配置多個action  包的作用主要用來區分不同模塊的配置
        不同模塊配置在不同的包下
        name 是包名  在項目下唯一 通常使用模塊名做為包名
        extends 表示繼承 必須直接或者間接繼承struts-default
        namespace 表示命名空間  命名空間和請求名直接相關  
        請求名=項目發布路徑名+namespace名+action名
        namespace名稱通常也和模塊名相關
     -->
    <package name="default" extends="struts-default" namespace="/user">
        <!-- action 配置請求名 一個action表示對一個請求的處理
            name在同一個包下唯一 會作為請求名稱 該名稱會自動將請求的擴展名去掉,所以不用配置擴展名
            class 配置處理請求的類的完全限定名=包名+類名。如果不配置class默認由
            com.opensymphony.xwork2.ActionSupport來處理。
            method 配置處理方法的名稱  默認由execute方法處理
            在struts2中處理方法  必須是 public的,返回值必須是String。
         -->
        <action name="hello" class="cn.sxt.action.HelloAction" method="hello">
            <!-- result配置的結果集處理  每個action中可以及配置多個result 
                name表示結果集名稱 和處理方法的返回值進行匹配 默認是success;
                type表示結果集類型
                    dispatcher 轉發-默認
                    redirect 重定向
                    redirectAction 重定向到另外一個action
                    stream 流
                    chain  表示action鏈
                result中填寫要跳轉的頁面的路徑
            -->
            <result name="success" type="dispatcher">/index.jsp</result>
        </action>
    </package>
    <!-- 
        include用於添加其他配置文件,在團隊開發中使用
        不同模塊一般使用不同的配置文件,在總的配置文件中加入即可
     -->
    <include file="user.xml"></include>
</struts>

Struts2開發步驟