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

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

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

    Java Study Center  
    日歷
    <2008年9月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011
    統計
    • 隨筆 - 40
    • 文章 - 3
    • 評論 - 0
    • 引用 - 0

    導航

    常用鏈接

    留言簿(1)

    隨筆檔案(40)

    文章檔案(3)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     
     

    Structs2基本配置入門


       來源:javaresearch.org  作者:liudayong

    1、為Structs應用配置Web.xml文件

    第一步:配置ActionServlet

    xml 代碼

    1. <servlet>  
    2.   <servlet-name>action</servlet-name>  
    3.   <servlet-class>org.appache. structs.ActionServlet</servlet-class>  
    4. </servlet>  
    5. <servlet-mapping>  
    6.    <servlet-name>action</servlet-name>  
    7.    <uri-pattern>*.do</url-pattern>  
    8. </servlet-mapping>  


    注意:不管應用中包含多少個子應用,都只需配置一個ActionServlet,因為ActionServlet支持多線程,目前的Structs框架只允許在應用中配置一個ActionServlet。

    第二步:初始化參數對Servlet的運行環境進行初始化配置。

    xml 代碼

    1. <servlet>  
    2.    <servlet-name> action</servlet-name>  
    3.    <servlet-class> org.appache. structs.ActionServlet </servlet-class>  
    4.    <init-param>  
    5. <param-name>config</param-name>  
    6. <param-value>/WEB-INF/structs-config.xml</param-value>  
    7. </init-param>  
    8.  </servlet>  


    表2-1. Struts1.1中用到的初始化參數

    參數名

    含義/默認值

    config

    以相對路徑的方式指明 Struts應用程序 的配置文件位置。 如不設置,則默認值為/WEB-INF /struts-config.xml。

    config/sub1

    以相對路徑的方式指明子應用程序 的配置文件位置,一般來說, 很少用到子應用程序, 在此不多描述。

    debug

    設置Servlet的debug級別, 控制日志記錄的詳細程度。 默認為0, 記錄相對最少的日志信息。

    detail

    設置Digester的debug級別, Digester是Struts框架所使用的 用來解析xml配置文件的一個框架, 通過該設置,可以查看不同詳細 等級的解析日志。默認為0, 記錄相對最少的日志信息。



    第三步:配置歡迎清單

    當客戶訪問Web應用時,如果僅僅給出Web應用的Root URL,沒用指定具體的文件名,Web容器會自動調用Web應用的歡迎文件。

    xml 代碼

    1. <welcome-file-list>  
    2. <welcome-file>welcome.jsp</welcome-file>  
    3. <welcome-file>index.jsp</welcome-file>    
    4.  </welcome-fiel-list>  


    說明:

    可以包含多個子元素,首先查找第一個文件。

    由于元素中不能配置Servlet映射,因此不能直接把Structs的Action作為歡迎文件,可以采用一種變通的方法來實現在歡迎文件中調用Structs Action。

    首先,在Structs配置文件中為被調用的Action創建一個全局的轉發項,例如:

    xml 代碼

    1. <global-forwards>  
    2.         <forward name=”welcome”  path=”HelloWord.do”/>  
    3. </global-forwords>  


    創建一個welcome.jsp的文件,最后在web.xml文件中把welcome.jsp文件配置為歡迎文件,代碼如下:

    xml 代碼

    1. <welcome-file-list>  
    2. <welcome-file>welcome.jsp</welcome-file>  
    3. </welcome-file-list>  


    第四步:配置錯誤處理

    xml 代碼

    1. <error-page>  
    2.     <error-code>404</error-code>  
    3.     <location>/commom/404.jsp</location>  
    4. </error-page>  
    5. <error-page>  
    6.     <error-code>505</error-code>  
    7.     <location>/commom/505.jsp</location>  
    8. </error-page>  


    也可以為Web容器捕獲的Java異常配置,需要設置子元素,它用于指定Java異常類。Web容器可能捕獲如下異常:RuntimeException或Error ServletException或它的子類,IOException或它的子類:

    xml 代碼

    1. <error-page>  
    2.     <exception-type>java.io.IOException</exception-type>  
    3.     <location>/common/system_ioerror.jsp</location>  
    4. </error-page>  
    5.     


    第五步:配置Structs標簽庫

    使用客戶化的標簽庫,要配置它們:

    xml 代碼

    1. <taglib>  
    2.        <tag-uri>/WEB-INF/structs-html.tld</tag-uri>  
    3.        <taglib-location> /WEB-INF/structs-html.tld</taglib-location>  
    4.  </taglib>  
    5.     


    用于指定標簽庫的相對或者絕對URI地址,Web應用根據這一URI來訪問標簽庫。

    指定標簽描述文件在文件資源系統中的物理位置。

    2、Structs配置文件

    Structs框架在啟動時會讀入其配置文件,根據它來創建和配置各種Structs組件。

    (1)元素

    元素是Structs配置文件的根元素,元素有8個子元素。它的DTD定義如下:

    xml 代碼

    1. <!ELEMENT structs-config   
    2. (data-sources?,formbean?,   
    3. global-exeception?,global-forward?,   
    4. action-mapping,controller?,   
    5. message-resources*,plug-in*)>  


    在Struts配置中,必須按照以上的DTD指定的先后順序來配置元素的各個子元素,如果顛倒了這些元素的配置文件中的位置,在Structs應用啟動時會生成錯誤。

    元素

    元素包含零個、一個或者多個子元素,用于配置特定的數據源,它可以包含多個子元素,用于設置數據源的各種屬性。

    配置了數據源后,就可以在Action類中訪問數據源,在org.apache.structs.action.Action類中定義了getDataSource(HttpRequrst)方法,它用于獲取數據源對象的引用。

    DataSource dataSource;

       Connection connection;

           dataSource =getDataSource(request);

           connection=dataSource.getConnection();



    也可以在配置文件中聲明多個數據源,此時需要為每一個數據源分配唯一的key值,通過改值來標識特定的數據源。

    (2) 元素

    元素用來配置多個ActionForm Bean, 包含多個子元素,,每個包含多個屬性,ClassName , name,type:

    xml 代碼

    1. <form-beans>  
    2.         <form-bean name="HelloForm"    
    3.         type="hello.HelloForm"/>  
    4. </form-beans>  
    5.     


    注意:配置動態ActionForm Bean,還必須配置 元素的 元素。

    xml 代碼

    1. <form-beans>  
    2.         <form-bean name="HelloForm"    
    3.         type="hello.HelloForm"/>  
    4.         <form-bean name="userForm" type="org.apache.structs.action.DynaAction">  
    5.         <from-property name="firstname"  
    6.         type="java.lang.String"/>  
    7.         <form-property name="secondname"  
    8.         type="java.lang.String">  
    9.         <form-property name="age"  
    10.         type="java.Integer" initial="18">  
    11.     </form-beans>  


    (3)
    元素

    用于配置異常處理,元素可以包含零個或者多個元素。

    元素用來設置java異常和異常處理類org.apache.structs.action,Exception Hander之間的映射。

    (4)元素

    元素用來聲明全局的轉發關系,有零個或多個元素組成。元素用于把一個邏輯映射到特定的URL

    屬性

    描 述

    className

    和元素對應的配置類, 默認為org.apache.structs. action.ActionForWard

    name

    轉發路徑的邏輯名, 此項時必須的

    path

    指定或者重定向的URI。 此項時必須的, 必須以”/”開頭

    redirect

    此項是true,表示是執行重定向的操作, 此項是false時, 表示請求轉發。

    xml 代碼

    1. <global-forwards>  
    2.        <forward name="forward1" path="/Action1.do"/>  
    3. <forward name="forward2"  path="/Action2.do"/>  
    4.  </global-forwards>  
    5.     



    如果jsp1.jsp把請求轉發給Action1,可以使用以下代碼:

    xml 代碼

    1. <html:link forward=”forward1”>  


    或者

    xml 代碼

    1. <logic:forward name=”forward1”>  


    如果Action1的execute()方法把請求轉發給JSP2.jsp,可以使用一下代碼:

    return(mapping.findForward(“forward2”))



    (5)
    元素

    元素包含零個或者多個元素。元素描述了從特定的請求路徑到相應的Action類的映射。

    (6)元素

    元素用于配置ActionServlet。

    (7)< message-resources>元素

    元素用于配置Resource Bundle,Resource Budle用于存放本地化消息文件。

    Structs標簽

    HTML標簽

    標簽名 描述

    base 包裝HTML的base元素

    button 包裝HTML的 button類型的input元素

    cancel 包裝HTML cancel 按鈕

    checkbox 包裝HTML checkbox 類型的輸入域

    errors 有條件地顯示一些error消息,顯示ActionErrors信息

    file 包裝HTML文件上傳輸入域

    form 定義HTML form 元素

    frame 包裝HTML frame 元素

    hidden 包裝HTML hidden 輸入域

    html 包裝 HTML中的 html 元素

    image 包裝 "image"類型的輸入域

    img 包裝HTML的 img 元素

    javascript 包裝根據ValidatorPlugIn提供的校驗規則所提供的javascript校驗腳本

    link 包裝超鏈接

    messages 有條件地顯示一些提示信息,顯示ActionMessages信息

    multibox 包裝多選輸入框

    option 包裝一個選擇輸入框

    options 包裝一批選擇輸入框

    optionsCollection 包裝一批選擇輸入框集

    password 包裝密文輸入框

    radio 包裝單選輸入框

    reset 包裝“重置”功能的按鈕

    rewrite 包裝一個URL

    select 包裝一個選擇輸入框

    submit 包裝一個提交按鈕

    text 包裝一個文本輸入框

    textarea 包裝一個備注輸入框

    ActionForm

    ActionForm 的要求

    創建一個ActionForm 并不困難,但是你的類必須符合一些要求:

    ActionForm 必須擴展自org.apache.struts.ActionForm。基類ActionForm 是不能實

    例化的。

    ActionForm 必須為每個應該從請求中收集的HTML控件定義一個公共屬性。

    (Struts 1.0 要求每個屬性都要mutator 和accessor 。Struts 1.1 則沒有如此嚴格)

    ActionForm還可能要符合一些可選的要求:

    如果你要求ActionForm 在傳遞屬性到Action之前校驗它們,你就必須實現validate

    方法,如果想在組裝前初始化屬性,必須實現reset , 它在ActionForm 組裝前被調用。

    動態ActionForm

    ActionForm 作為類型轉換器

    ActionForm的一個強制點是應該使用String 和boolean屬性。實際上,這意味著屬性

    必須得從一種轉換到另一種類型。大部分應用也需要一些屬性,比如電話號碼或者數量,以一種格式化的方式出現。

    核心Java 包提供一些工具來做這種事情,但是要清楚地將他們集成到應用中仍然是一個挑戰。

    Struts開發人員經常在ActionForm中包含helper方法,來進行類型轉換。helper 方法

    可以有很多種實現方式。

    5.2.6 ActionForm 作為防火墻

    當請求提交時,ActionServlet 使用一個自動組裝機制來從請求參數中設置請求的

    ActionForm屬性。這讓你可以通過控制哪個ActionForm 屬性被暴露來控制哪個請求參數

    是可接受的。這也意味著如果你的ActionForm 的粗心設計你可能失去控制哪個參數可以接受的能力。ActionForm一定不能包含看起來像是一個JavaBean屬性,但不能從HTTP請求設置的屬性方法。

    5.3.4 ActionForm 可以嵌套其它bean

    因為Struts標簽擴展和自動組裝機制都支持點號語法來從ActionForm訪問其它bean。這是一個方便的方式,可以通過ActionForm來組裝存在的bean。在JSP頁面,你可以象這樣引用一個嵌套的bean:

    xml 代碼

    1. <html:text  
    2. propety="values.telephoneText"  
    3. size="14"  
    4. maxlength="14"/>  


    5.7.2
    分發(Dispatch )

    Struts 開發人員通常使用同一個Action處理相關的操作。一個通常做法來選擇操作是在

    HTML表單中使用隱藏屬性。BaseForm 的dispatch 屬性也可用作這個目的:

    public void setDispatch(String dispatch);

    public String getDispatch();



    Struts
    配置提供連個級別嵌套的ActionForward:

    Global (全局) ActionForward對整個應用中的所有Action 對象均有效;

    Local (局部) ActionForward 則在ActionMapping 元素中定義。

    僅對那些在這個ActionMapping中調用的Action對象有效。從Action 對象內部來看,forward 通常像這樣來選擇:

    ActionForward forward =

    mapping.findForward("continue");

    posted on 2008-09-17 15:49 綠茶_鄭州 閱讀(3705) 評論(0)  編輯  收藏

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


    網站導航:
     
     
    Copyright © 綠茶_鄭州 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 精品国产日韩亚洲一区91| 亚洲卡一卡二卡乱码新区| a一级爱做片免费| 亚洲一区二区视频在线观看| 色一情一乱一伦一视频免费看| 四虎国产精品免费久久影院| 精品一区二区三区免费毛片| 国产色爽女小说免费看| 美女被免费视频网站a| 亚洲国产成人VA在线观看| 一级毛片免费在线| 亚洲人成网站在线观看播放| 黄色网站软件app在线观看免费 | 三年片在线观看免费| 亚洲中文久久精品无码| 免费人成毛片动漫在线播放| 久久精品国产亚洲AV果冻传媒 | 91嫩草免费国产永久入口| 亚洲精品国产第1页| 97在线观免费视频观看| 中文字幕在线观看亚洲日韩| 国产成人无码免费视频97 | 在线播放亚洲第一字幕| 日韩成人免费视频| 91亚洲精品麻豆| 日韩电影免费在线观看视频| 一个人免费观看www视频| 亚洲AV永久无码精品一百度影院| 日本免费在线中文字幕| 亚洲高清中文字幕免费| 亚洲真人日本在线| 91大神在线免费观看| 亚洲AV永久无码精品一福利| 亚洲色精品aⅴ一区区三区| 免费精品国产自产拍在线观看图片| 亚洲精华液一二三产区| 国产亚洲人成网站在线观看不卡| 97热久久免费频精品99| 丰满少妇作爱视频免费观看| 亚洲黄色免费在线观看| 亚洲AⅤ永久无码精品AA|