<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    RoyJohnson

    生命不息,奮斗不止!
    posts - 4, comments - 9, trackbacks - 0, articles - 0

    Struts詳解

    Posted on 2007-06-17 18:07 roy_johnson 閱讀(1424) 評論(2)  編輯  收藏 所屬分類: Struts

                                                Struts框架詳解
    struts-config.xml    Struts配置文件
    ActionServlet  控制器
    Action Class  包含事務(wù)邏輯
    ActionForm  顯示模塊數(shù)據(jù)
    ActionMapping  幫助控制器將請求映射到操作
    ActionForward  用來指示操作轉(zhuǎn)移的對象
    ActionError  用來存儲和回收錯誤
    Struts標(biāo)記庫  可以減輕開發(fā)顯示層次的工作

    struts框架的優(yōu)勢
    1.良好的架構(gòu)和設(shè)計
    2.可重用,模塊化,擴展性好
    3.Open source

    struts-config.xml

    Struts-config.xml集中了所有頁面的導(dǎo)航定義。對于大型的WEB項目,通過此配置文件即可迅速把握其脈絡(luò),這不管是對于前期的開發(fā),還是后期的維護或升級都是大有裨益的。掌握Struts-config.xml是掌握Struts的關(guān)鍵所在。

    FormBean部分

    <struts-config>
      <!--  Form Bean Definitions -->
      <form-beans>
        <form-bean name=“testform" type="com.cjea.test.TestForm" />
      </form-beans> 

    全局轉(zhuǎn)發(fā)部分

    <!-- Global Forward Definitions -->
      <global-forwards>
        <forward   name="failure"     path="bad.jsp"/>
        <forward   name="success"     path="/good.jsp" />
      </global-forwards>

    action部分

    <action-mappings>
       <action path=“/test/test.jsp" type=“com.cjea.test.testAction" name="testform" scope="request">
            <forward name="success" path="/test/good.jsp" />
       </action>
    <action-mappings> 
    </struts-config>

     ActionServlet

    ActionServlet 是struts框架 MVC 實現(xiàn)的 controller 部分,它是這一框架的核心。
    ActionServlet 創(chuàng)建并使用 Action、ActionForm 和 ActionForward。

    ActionServlet的基本功能

    截獲用戶的Http請求
    把這個請求映射到相應(yīng)的Action類。
    創(chuàng)建一個ActionForm bean實例,將form請求放入formbean的實例中
    調(diào)用Action實例的perform()方法
    將ActioForm bean,Action Mapping對象,request和response對象傳給Action的perform()方法
    perform返回一個ActionForword對象,根據(jù)方法執(zhí)行情況轉(zhuǎn)到相應(yīng)的jsp頁面.

     

    Action Classes


    Action 類是業(yè)務(wù)邏輯的一個包裝。Action 類的用途是將 HttpServletRequest 轉(zhuǎn)換為業(yè)務(wù)邏輯。

    ActionForm

    ActionForm 維護 Web 應(yīng)用程序的會話狀態(tài)。
    ActionForm 是一個抽象類,必須為每個輸入表單模型創(chuàng)建該類的子類。


    ActionForm的使用

    假定有一個由 HTML 表單設(shè)置的 TestActionForm。Struts 框架將執(zhí)行以下操作:
    檢查 TestActionForm是否存在;如果不存在,它將創(chuàng)建該類的一個實例。
    Struts 將使用 HttpServletRequest 中相應(yīng)的域設(shè)置 TestActionForm的狀態(tài)。
    Struts 框架在將 TestActionForm傳遞給TestAction 之前將更新它的狀態(tài)。
    struts-config.xml 文件控制 HTML 表單請求與 ActionForm 之間的映射關(guān)系。
    可將多個請求映射到 TestActionForm 。

    Struts標(biāo)記庫
    Struts框架包括自定義標(biāo)簽庫,它可以用 在很多方面。盡管這些庫并不要求用框 架,但使用它們會有助于程序的開發(fā)。

    Struts標(biāo)記庫
    struts-bean taglib:包含在訪問bean和bean屬性時使用的tag,也包含一些消息顯示的tag。
    struts-html taglib:包含用來生成動態(tài)HTML用戶界面和窗體的tag。
    struts-logic taglib :包含的tag用來管理根據(jù)條件生成輸出文本,和其它一些用來控制的信息。
    struts-template taglib包含的tag用來定義模板機制。

    Bean Taglib
    用于定義新bean、訪問bean及其屬性的標(biāo)記
    在struts-bean.tld中定義了它的標(biāo)記庫描述器
    Bean Taglib主要功能
    創(chuàng)建和復(fù)制bean的標(biāo)記
    腳本變量定義標(biāo)記
    bean翻譯標(biāo)記
    消息國際化標(biāo)記
    Bean復(fù)制標(biāo)記 (<bean:define>)
    可定義新bean,可復(fù)制現(xiàn)有bean,還可從現(xiàn)有bean復(fù)制屬性。
    定義新字符串常數(shù)
    將現(xiàn)有的bean復(fù)制到新定義的bean對象
    復(fù)制現(xiàn)有bean的屬性來創(chuàng)建新的bean
    <bean:define>標(biāo)記屬性:
    Id 新定義的bean腳本變量名稱,必須設(shè)置
    Type 定義引入腳本變量的類
    Value 為id屬性定義的腳本變量分配一個新的對象
    <bean:define>標(biāo)記屬性:
    Name 目標(biāo)bean的名稱。若value屬性沒有設(shè)置,這個屬性就必須設(shè)置
    property Name屬性定義的bean的屬性名稱,用來定義新的bean
    Scope 源bean的作用域。若沒有設(shè)置,搜索范圍是從頁作用域到應(yīng)用程序作用域
    toScope 目標(biāo)bean的作用域。若沒有設(shè)置,默認(rèn)值是頁作用域
    舉例
    定義一個bean:
    <bean:define id="test" value="this is a test"/>
    源bean在頁作用域中被拷貝到請求作用域中的另一個bean:
    <bean:define id="targetBean" name="sourceBean"
    scope="page" toScope="request"/>
    腳本變量的標(biāo)記
    從多種資源中定義和生成腳本變量,這些資源包括cookie,請求參數(shù),HTTP標(biāo)頭等等。
    腳本變量的標(biāo)記屬性:
    Id        腳本變量和要定義的頁作用域                 屬性的名稱
    Name    cookie/標(biāo)頭/參數(shù)的名稱
    Value    如果沒有匹配的cookie或    數(shù)值,就返回這個屬性指    定的默認(rèn)值

    腳本變量的標(biāo)記屬性:
    multiple 如果這個屬性設(shè)置了任意一個數(shù)值,所有匹配的cookie都會被積累并存儲到一個Cookie[](一個數(shù)組)類型的bean里           若無設(shè)置,指定cookie的第一個值將作為Cookie類型的值
    舉例
    <bean:cookie id="myCookie" name="userName"/>
    腳本變量名稱是myCookie,用來創(chuàng)建這個屬性的cookie的名稱是userName。
    <bean:header id="myHeader" name="Accept-Language"/>
    腳本變量名稱是myHeader,請求標(biāo)頭的名稱是Accept-Language.

    舉例
    <bean:parameter id="myParameter" name="myParameter">
    腳本變量名稱是myPatameter,它保存的請求參數(shù)的名稱也是myParameter
    邏輯標(biāo)記
    Struts邏輯標(biāo)簽庫包含的標(biāo)記能夠有條件地產(chǎn)生輸出文本
    在對象集合中循環(huán)從而重復(fù)地產(chǎn)生輸出文本,以及應(yīng)用程序流程控制
    它也提供了一組在JSP頁中處理流程控制的標(biāo)記
    邏輯標(biāo)記封裝在文件名為struts-logic.tld的標(biāo)記包中
    邏輯標(biāo)記庫的功能
    條件邏輯
    重復(fù)
    轉(zhuǎn)發(fā)/重定向響應(yīng)
    條件邏輯標(biāo)記
    第一類可以比較下列實體與一個常數(shù)的大小
    第二類在計算標(biāo)記體之前判斷特定的項目是否存在
    第三類根據(jù)模板匹配的結(jié)果檢查標(biāo)記體的內(nèi)容
    第一類條件邏輯標(biāo)記
    <equal>  如果常數(shù)與被定義的實體相等,返回true
    <notEqual> 如果常數(shù)與被定義的實體不相等,返回true
    <greaterEqual> 如果常數(shù)大于等于被定義的實體,返回true
    第一類條件邏輯標(biāo)記
    <lessEqual> 如果常數(shù)小于等于被定義的實體,返回true
    <lessThan> 如果常數(shù)小于被定義的實體,返回true
    <greaterThan> 如果常數(shù)大于被定義的實體,返回true
    舉例
    判斷名為"name"的請求參數(shù)的值是否是"SomeName"。
    <logic:equal parameter="name" value="SomeName">
            The entered name is SomeName
    </logic:equal>
    舉例
    判斷在頁的作用域中是否有一個名為"bean"的bean,它有一個prop屬性,這個屬性的值是否大于7。
    如果這個屬性能夠轉(zhuǎn)化為數(shù)值,就進行數(shù)值比較,否則就進行字符串比較。
    <logic:greaterThan name="bean" property="prop" scope="page" value="7">
    The value of bean.Prop is greater than 7
    </logic:greaterThan>
    第二類條件邏輯標(biāo)記
    <logic:present>
    <logic:notPresent>
    第三類條件邏輯標(biāo)記
    <logic:match>
    <logic:notMatch>
    重復(fù)標(biāo)記<logic:iterate>
    它能夠根據(jù)特定集合中元素的數(shù)目對標(biāo)記體的內(nèi)容進行重復(fù)的檢查
    集合的類型
    java.util.Iterator
    java.util.Collection
    java.util.Map
    java.util.List
    數(shù)組
    舉例
    Strlst是一個包含字符串的List,現(xiàn)在要將他內(nèi)部的字符串全都顯示在瀏覽器里
    <logic:iterate id="element" name="strlst"  indexId="index">
    <%=(String)element)%>
    </logic:iterate>
    轉(zhuǎn)發(fā)標(biāo)記
    <logic:forward>標(biāo)記能夠?qū)㈨憫?yīng)轉(zhuǎn)發(fā)給重定向到特定的全局ActionForward上
    ActionForward的類型決定了是使用PageContext轉(zhuǎn)發(fā)響應(yīng),還是使用sendRedirect將響應(yīng)進行重定向
    此標(biāo)記只有一個"name"屬性,用來指定全局ActionForward的名稱,例如:
    <logic:forward name="myGlobalForward"/>
    重定向標(biāo)記
    <logic:redirect>標(biāo)記是一個能夠執(zhí)行HTTP重定向的強大工具。
    根據(jù)指定的不同屬性,它能夠通過不同的方式實現(xiàn)重定向。
    它還允許開發(fā)人員指定重定向URL的查詢參數(shù)。
    HTML標(biāo)記
    Struts HTML標(biāo)記可以大致地分為以下幾個功能:
    顯示表單元素和輸入控件
    顯示錯誤信息
    顯示其他HTML元素
    模板標(biāo)記
    Struts模板標(biāo)記可以大致地分為以下幾個功能:
    插入標(biāo)記<template:insert>
    放置標(biāo)記<template:put>
    獲得標(biāo)記<template:get>

    Feedback

    # re: Struts詳解[未登錄]  回復(fù)  更多評論   

    2007-06-17 20:29 by dd
    挺詳細(xì)的嗎!

    # re: Struts詳解  回復(fù)  更多評論   

    2007-06-19 11:51 by Alexander.Yu
    為什么不用2.0?

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费国产小视频在线观看| **一级一级毛片免费观看| 国产免费131美女视频| 亚洲人成在线精品| 久久午夜免费视频| 亚洲人成影院77777| 成人午夜18免费看| 亚洲aⅴ天堂av天堂无码麻豆 | 亚洲成在人线在线播放无码| 国产99视频精品免费观看7| 亚洲欧洲免费无码| 永久免费av无码网站大全| 亚洲av午夜电影在线观看| 亚洲国产精品一区二区第四页 | 午夜免费啪视频在线观看| 色婷婷六月亚洲婷婷丁香| 国产精品成人观看视频免费| 亚洲乱码卡一卡二卡三| 好男人视频在线观看免费看片| 中文有码亚洲制服av片| 日韩精品免费一区二区三区| 男人扒开添女人下部免费视频| 亚洲中文久久精品无码ww16| 日韩精品无码专区免费播放| 亚洲一区二区三区深夜天堂| 日本a级片免费看| 在线观看免费视频网站色| 亚洲经典在线观看| 国产一区二区三区在线免费观看 | 免费观看亚洲人成网站| 国产亚洲精品免费视频播放| 91精品国产免费网站| 韩国亚洲伊人久久综合影院| 亚洲永久精品ww47| 日本最新免费网站| 激情无码亚洲一区二区三区| 亚洲人成人77777网站| 国产情侣激情在线视频免费看| 老司机免费午夜精品视频| 亚洲AV无码AV男人的天堂| 好吊妞998视频免费观看在线|