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

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

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

    Dict.CN 在線詞典, 英語(yǔ)學(xué)習(xí), 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統(tǒng)計(jì)

    留言簿(23)

    積分與排名

    優(yōu)秀學(xué)習(xí)網(wǎng)站

    友情連接

    閱讀排行榜

    評(píng)論排行榜

    struts的配置文件詳解 (zhuan)

    struts的配置文件詳解

    struts的配置文件詳解
    第一章Structs的基本配置
    1.為Structs應(yīng)用配置Web.xml文件
    第一步:配置ActionServlet
    <servlet>
    ? <servlet-name>action</servlet-name>
    ? <servlet-class>org.appache.structs.ActionServlet</servlet-class>
    </servlet>

    <servlet-mapping>
    ?? <servlet-name>action</servlet-name>
    ?? <uri-pattern>*.do</url-pattern>
    </servlet-mapping>
    注意:不管應(yīng)用中包含多少個(gè)子應(yīng)用,都只需配置一個(gè)ActionServlet,因?yàn)锳ctionServlet支持多線程,目前的Structs框架只允許在應(yīng)用中配置一個(gè)ActionServlet。
    第二步:初始化參數(shù)對(duì)Servlet的運(yùn)行環(huán)境進(jìn)行初始化配置。
    <servlet>
    ?? <servlet-name> action</servlet-name>
    ?? <servlet-class> org.appache.structs.ActionServlet </servlet-class>
    ?? <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/structs-config.xml</param-value>
    </init-param>
    ?</servlet>
    表2-1. Struts1.1中用到的初始化參數(shù)
    參數(shù)名??? 含義/默認(rèn)值
    config???? 以相對(duì)路徑的方式指明Struts應(yīng)用程序的配置文件位置。如不設(shè)置,則默認(rèn)值為/WEB-INF/struts-config.xml。
    config/sub1???? 以相對(duì)路徑的方式指明子應(yīng)用程序的配置文件位置,一般來(lái)說(shuō),很少用到子應(yīng)用程序,在此不多描述。
    debug???? 設(shè)置Servlet的debug級(jí)別,控制日志記錄的詳細(xì)程度。默認(rèn)為0,記錄相對(duì)最少的日志信息。
    detail???? 設(shè)置Digester的debug級(jí)別,Digester是Struts框架所使用的用來(lái)解析xml配置文件的一個(gè)框架,通過(guò)該設(shè)置,可以查看不同詳細(xì)等級(jí)的解析日志。默認(rèn)為0,記錄相對(duì)最少的日志信息。

    第三步:配置歡迎清單
    ?? 當(dāng)客戶訪問(wèn)Web應(yīng)用時(shí),如果僅僅給出Web應(yīng)用的Root URL,沒(méi)用指定具體的文件名,Web容器會(huì)自動(dòng)調(diào)用Web應(yīng)用的歡迎文件。
    ? <welcome-file-list>
    ?????????? <welcome-file>welcome.jsp</welcome-file>
    ?????????? <welcome-file>index.jsp</welcome-file>
    ?</welcome-fiel-list>
    說(shuō)明:<welcome-file-list>可以包含多個(gè)<welcome-file>子元素,首先查找第一個(gè)<welcome-file>文件。
    ?? 由于<welcome-file-list>元素中不能配置Servlet映射,因此不能直接把Structs的Action作為歡迎文件,可以采用一種變通的方法來(lái)實(shí)現(xiàn)在歡迎文件中調(diào)用Structs Action。首先,在Structs配置文件中為被調(diào)用的Action創(chuàng)建一個(gè)全局的轉(zhuǎn)發(fā)項(xiàng),例如:
    ? <global-forwards>
    ??????? <forward name=”welcome” path=”HelloWord.do”/>
    </global-forwords>
    創(chuàng)建一個(gè)welcome.jsp的文件
    最后在web.xml文件中把welcome.jsp文件配置為歡迎文件,代碼如下:
    ???? <welcome-file-list>
    ????????? <welcome-file>welcome.jsp</welcome-file>
    ???? </welcome-file-list>
    第四步:配置錯(cuò)誤處理
    ???
    <error-page>
    ??? <error-code>404</error-code>
    ??? <location>/commom/404.jsp</location>
    </error-page>
    <error-page>
    ??? <error-code>505</error-code>
    ??? <location>/commom/505.jsp</location>
    </error-page>
    ?? 也可以為Web容器捕獲的Java異常配置<error-page>,需要設(shè)置<exception-type>子元素,它用于指定Java異常類。Web容器可能捕獲如下異常:
    ? RuntimeException或Error?? ServletException或它的子類? IOException或它的子類
    <error-page>
    ??? <exception-type>java.io.IOException</exception-type>
    ??? <location>/common/system_ioerror.jsp</location>
    </error-page>
    第五步:配置Structs標(biāo)簽庫(kù)
    ??? 使用客戶化的標(biāo)簽庫(kù),要配置它們
    ?? <taglib>
    ?????? <tag-uri>/WEB-INF/structs-html.tld<tag-uri>
    ?????? <taglib-location>/WEB-INF/structs-html.tld</taglib-location>
    ?? </taglib>
    <tag-uri>用于指定標(biāo)簽庫(kù)的相對(duì)或者絕對(duì)URI地址,Web應(yīng)用根據(jù)這一URI來(lái)訪問(wèn)標(biāo)簽庫(kù)。
    <taglib-location>指定標(biāo)簽描述文件在文件資源系統(tǒng)中的物理位置。
    2 Structs配置文件
    ???? Structs框架在啟動(dòng)時(shí)會(huì)讀入其配置文件,根據(jù)它來(lái)創(chuàng)建和配置各種Structs組件。
    1<Structs-config>元素
    ???? <structs-config>元素是Structs配置文件的根元素,<structs-cofig>元素有8個(gè)子元素。它的DTD定義如下:
    ?<!ELEMENT structs-config(data-sources?,formbean?,global-exeception?,global-forward?,action-mapping,controller?,message-resources*,plug-in*)>
    ?在Struts配置中,必須按照以上的DTD指定的先后順序來(lái)配置<Structs-config>元素的各個(gè)子元素,如果顛倒了這些元素的配置文件中的位置,在Structs應(yīng)用啟動(dòng)時(shí)會(huì)生成錯(cuò)誤。
    <data-sources>元素
    ??????????????????????????????????????????????????????????????????????????????????????


    <data-sources>元素包含零個(gè)、一個(gè)或者多個(gè)<data-sources>子元素,<data-sources>用于配置特定的數(shù)據(jù)源,它可以包含多個(gè)<set-property>子元素,用于設(shè)置數(shù)據(jù)源的各種屬性。
    。。。
    配置了數(shù)據(jù)源后,就可以在Action類中訪問(wèn)數(shù)據(jù)源,在org.apache.structs.action.Action類中定義了getDataSource(HttpRequrst)方法,它用于獲取數(shù)據(jù)源對(duì)象的引用。
    ?? DataSource? dataSource;
    ?? Connection? connection;
    ?????? dataSource =getDataSource(request);
    ?????? connection=dataSource.getConnection();
    也可以在配置文件中聲明多個(gè)數(shù)據(jù)源,此時(shí)需要為每一個(gè)數(shù)據(jù)源分配唯一的key值,通過(guò)改值來(lái)標(biāo)識(shí)特定的數(shù)據(jù)源。
    2<form-beans>元素
    ?? <form-beans>元素用來(lái)配置多個(gè)ActionForm Bean,<form-beans>包含多個(gè)<forom-bean>子元素,,每個(gè)<from-bean>包含多個(gè)屬性,ClassName , name,type
    ?? <form-beans>
    ??????? <form-bean name="HelloForm" type="hello.HelloForm"/>
    </form-beans>
    注意:配置動(dòng)態(tài)ActionForm Bean,還必須配置<form-bean>元素的<form-property>元素。
    <form-beans>
    ??????? <form-bean name="HelloForm" type="hello.HelloForm"/>
    ??????? <form-bean name="userForm" type="org.apache.structs.action.DynaAction">
    ??????? <from-property name="firstname" type="java.lang.String"/>
    ??????? <form-property name="secondname" type="java.lang.String">
    ??????? <form-property name="age" type="java.Integer" initial="18">
    ??? </form-beans>
    3<global-exception>元素
    <global-exception>用于配置異常處理,<global-exception>元素可以包含零個(gè)或者多個(gè)<exception>元素。
    <exception>元素用來(lái)設(shè)置java異常和異常處理類org.apache.structs.action,Exception? Hander之間的映射。
    4<gloable-forwards>元素
    ???? <global-forwards>元素用來(lái)聲明全局的轉(zhuǎn)發(fā)關(guān)系,<global-forwards>有零個(gè)或多個(gè)<forward>元素組成。<forward>元素用于把一個(gè)邏輯映射到特定的URL
    屬性??? 描? 述
    className??? 和<forward>元素對(duì)應(yīng)的配置類,默認(rèn)為org.apache.structs.action.ActionForWard
    name??? 轉(zhuǎn)發(fā)路徑的邏輯名,此項(xiàng)時(shí)必須的
    path??? 指定或者重定向的URI。此項(xiàng)時(shí)必須的,必須以”/”開頭
    redirect??? 此項(xiàng)是true,表示是執(zhí)行重定向的操作,此項(xiàng)是false時(shí),表示請(qǐng)求轉(zhuǎn)發(fā)。

    ?


    <global-forwards>
    ?????? <forward name="forward1" path="/Action1.do"/>
    <forward name="forward1" path="/Action2.do"/>
    ?</global-forwards>
    如果jsp1.jsp把請(qǐng)求轉(zhuǎn)發(fā)給Action1,可以使用以下代碼:
    <html:link forward=”forward1”>
    ? 或者<logic:forward name=”forward1”>
    如果Action1的execute()方法把請(qǐng)求轉(zhuǎn)發(fā)給JSP2.jsp,可以使用一下代碼:
    return(mapping.findForward(“forward2”))
    5<action-mapping>元素
    ?? <action-mapping>元素包含零個(gè)或者多個(gè)<action>元素。<action>元素描述了從特定的請(qǐng)求路徑到相應(yīng)的Action類的映射。
    6<controller>元素
    ? <controller>元素用于配置ActionServlet。
    7< message-resources>元素
    <message-resources>元素用于配置Resource Bundle,Resource Budle用于存放本地化消息文件。
    Structs標(biāo)簽
    HTML標(biāo)簽
    標(biāo)簽名??? 描述
    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??? 包裝根據(jù)ValidatorPlugIn提供的校驗(yàn)規(guī)則所提供的javascript校驗(yàn)?zāi)_本
    link??? 包裝超鏈接
    messages??? 有條件地顯示一些提示信息,顯示ActionMessages信息
    multibox??? 包裝多選輸入框
    option??? 包裝一個(gè)選擇輸入框
    options??? 包裝一批選擇輸入框
    optionsCollection??? 包裝一批選擇輸入框集
    password??? 包裝密文輸入框
    radio??? 包裝單選輸入框
    reset??? 包裝“重置”功能的按鈕
    rewrite??? 包裝一個(gè)URL
    select??? 包裝一個(gè)選擇輸入框
    submit??? 包裝一個(gè)提交按鈕
    text??? 包裝一個(gè)文本輸入框
    textarea??? 包裝一個(gè)備注輸入框

    ActionForm
    ActionForm 的要求
    創(chuàng)建一個(gè)ActionForm 并不困難,但是你的類必須符合一些要求:
    ActionForm 必須擴(kuò)展自org.apache.struts.ActionForm。基類ActionForm 是不能實(shí)
    例化的。
    ActionForm 必須為每個(gè)應(yīng)該從請(qǐng)求中收集的HTML控件定義一個(gè)公共屬性。
    (Struts 1.0 要求每個(gè)屬性都要mutator 和accessor 。Struts 1.1 則沒(méi)有如此嚴(yán)格)
    ActionForm還可能要符合一些可選的要求:
    如果你要求ActionForm 在傳遞屬性到Action之前校驗(yàn)它們,你就必須實(shí)現(xiàn)validate
    方法;
    如果想在組裝前初始化屬性,必須實(shí)現(xiàn)reset , 它在ActionForm 組裝前被調(diào)用;
    動(dòng)態(tài)ActionForm
    ActionForm 作為類型轉(zhuǎn)換器
    ActionForm的一個(gè)強(qiáng)制點(diǎn)是應(yīng)該使用String 和boolean屬性。實(shí)際上,這意味著屬性
    必須得從一種轉(zhuǎn)換到另一種類型。大部分應(yīng)用也需要一些屬性,比如電話號(hào)碼或者數(shù)量,以
    一種格式化的方式出現(xiàn)。核心Java 包提供一些工具來(lái)做這種事情,但是要清楚地將他們集
    成到應(yīng)用中仍然是一個(gè)挑戰(zhàn)。
    Struts 開發(fā)人員經(jīng)常在ActionForm中包含helper方法,來(lái)進(jìn)行類型轉(zhuǎn)換。helper 方法
    可以有很多種實(shí)現(xiàn)方式,這我們?cè)?.6種敘述。
    5.2.6 ActionForm 作為防火墻
    當(dāng)請(qǐng)求提交時(shí),ActionServlet 使用一個(gè)自動(dòng)組裝機(jī)制來(lái)從請(qǐng)求參數(shù)中設(shè)置請(qǐng)求的
    ActionForm屬性。這讓你可以通過(guò)控制哪個(gè)ActionForm 屬性被暴露來(lái)控制哪個(gè)請(qǐng)求參數(shù)
    是可接受的。這也意味著如果你的ActionForm 的粗心設(shè)計(jì)你可能失去控制哪個(gè)參數(shù)可以接
    受的能力。ActionForm 一定不能包含看起來(lái)像是一個(gè)JavaBean 屬性,但不能從HTTP 請(qǐng)
    求設(shè)置的屬性方法。
    5.3.4 ActionForm 可以嵌套其它bean
    因?yàn)镾truts 標(biāo)簽擴(kuò)展和自動(dòng)組裝機(jī)制都支持點(diǎn)號(hào)語(yǔ)法來(lái)從ActionForm訪問(wèn)其它
    bean。這是一個(gè)方便的方式,可以通過(guò)ActionForm來(lái)組裝存在的bean。在JSP 頁(yè)面, 你可
    以象這樣引用一個(gè)嵌套的bean:
    <html:text
    propety="values.telephoneText"
    size="14"
    maxlength="14"/>
    5.7.2 分發(fā)(Dispatch )
    Struts 開發(fā)人員通常使用同一個(gè)Action處理相關(guān)的操作。一個(gè)通常做法來(lái)選擇操作是在
    HTML表單中使用隱藏屬性。BaseForm 的dispatch 屬性也可用作這個(gè)目的:
    public void setDispatch(String dispatch);
    public String getDispatch();
    Struts 配置提供連個(gè)級(jí)別嵌套的ActionForward:
    ? Global (全局) ActionForward對(duì)整個(gè)應(yīng)用中的所有Action 對(duì)象均有效;
    ? Local (局部) ActionForward 則在ActionMapping 元素中定義。僅對(duì)那些在這個(gè)
    ActionMapping中調(diào)用的Action對(duì)象有效。
    從Action 對(duì)象內(nèi)部來(lái)看,forward 通常像這樣來(lái)選擇:
    ActionForward forward = mapping.findForward("continue");?

    posted on 2007-03-28 10:17 都市淘沙者 閱讀(276) 評(píng)論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 成熟女人特级毛片www免费| 久青草国产免费观看| 亚洲色欲或者高潮影院| 亚洲午夜电影在线观看| 亚洲人成777在线播放| 最近在线2018视频免费观看| 黄色片在线免费观看| 国产在线a不卡免费视频| 亚洲一区二区三区无码影院| 亚洲国产精品高清久久久| 亚洲综合久久成人69| 在线播放免费人成视频网站| 无码国产精品一区二区免费3p| 18禁无遮挡无码国产免费网站| 日韩精品亚洲人成在线观看| 国产亚洲日韩在线a不卡| 美女被免费网站91色| 永久免费视频v片www| 亚洲日产2021三区在线| av电影在线免费看| 四虎成人免费网站在线| 亚洲视频在线不卡| 在线免费观看视频你懂的| 免费一级特黄特色大片| 中国在线观看免费国语版| 亚洲国产精品线在线观看| www.xxxx.com日本免费| 亚洲线精品一区二区三区影音先锋 | 国产va精品免费观看| 色欲aⅴ亚洲情无码AV| 日韩免费福利视频| 久久精品熟女亚洲av麻豆| 亚洲AV永久纯肉无码精品动漫| 中文字幕无码免费久久| 国产亚洲精品国产| 免费视频成人国产精品网站| 97久久精品亚洲中文字幕无码| 亚洲国产精品不卡毛片a在线| 国产精品无码亚洲精品2021| 亚洲一区二区三区夜色| 国产国拍亚洲精品福利 |