泰仔在線

          java學(xué)習(xí),心情日記,繽紛時(shí)刻
          posts - 100, comments - 34, trackbacks - 0, articles - 0

          Struts struts-config.xml 配置

          Posted on 2006-09-01 16:09 泰仔在線 閱讀(1486) 評(píng)論(2)  編輯  收藏 所屬分類: Java 相關(guān)
          作為Java web應(yīng)用的四個(gè)知名配置文件,這里花了兩天時(shí)間完成了這個(gè)struts-config.xml文件的常用配置詳解.不求最全,但求實(shí)用.希望能給大家?guī)?lái)方便.
           
          關(guān)鍵字:Struts struts-config.xml 配置
           
          以下是一份完整的struts-config.xml文件,配置元素的說(shuō)明詳見(jiàn)注釋.
           
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE struts-config PUBLIC
           "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
           "http://jakarta.apache.org/struts/dtds/struts-config.dtd">
          <!-- struts-config.xml中的元素必須按照上述doc指令中的dtd文檔定義順序書(shū)寫(xiě),本例即遵從了dtd定義順序 -->
          <!-- struts-config是整個(gè)xml的根元素,其他元素必須被包含其內(nèi) -->
          <struts-config>
           <!--
            名稱:data-sources
            描述:data-sources元素定義了web App所需要使用的數(shù)據(jù)源
            數(shù)量:最多一個(gè)
            子元素:data-source
           -->
           <data-sources>
            <!--
             名稱:data-source
             描述:data-source元素定義了具體的數(shù)據(jù)源
             數(shù)量:任意多個(gè)
             屬性:
              @key:當(dāng)需要配置多個(gè)數(shù)據(jù)源時(shí),相當(dāng)于數(shù)據(jù)源的名稱,用來(lái)數(shù)據(jù)源彼此間進(jìn)行區(qū)別
              @type:可以使用的數(shù)據(jù)源實(shí)現(xiàn)的類,一般來(lái)自如下四個(gè)庫(kù)
               Poolman,開(kāi)放源代碼軟件
               Expresso,Jcorporate
               JDBC Pool,開(kāi)放源代碼軟件
               DBCP,Jakarta
            -->
            <data-source key="firstOne" type="org.apache.commons.dbcp.BasicDataSource">
             <!--
              名稱:set-property
              描述:用來(lái)設(shè)定數(shù)據(jù)源的屬性
              屬性:
               @autoCommit:是否自動(dòng)提交 可選值:true/false
               @description:數(shù)據(jù)源描述
               @driverClass:數(shù)據(jù)源使用的類
               @maxCount:最大數(shù)據(jù)源連接數(shù)
               @minCount:最小數(shù)據(jù)源連接數(shù)
               @user:數(shù)據(jù)庫(kù)用戶
               @password:數(shù)據(jù)庫(kù)密碼
               @url:數(shù)據(jù)庫(kù)url
             -->
             <set-property property="autoCommit" value="true"/>
             <set-property property="description" value="Hello!"/>
             <set-property property="driverClass" value="com.mysql.jdbc.Driver"/>
             <set-property property="maxCount" value="10"/>
             <set-property property="minCount" value="2"/>
             <set-property property="user" value="root"/>
             <set-property property="password" value=""/>
             <set-property property="url" value="jdbc:mysql://localhost:3306/helloAdmin"/>
            </data-source>
           </data-sources>
           
           <!--
            名稱:form-beans
            描述:用來(lái)配置多個(gè)ActionForm Bean
            數(shù)量:最多一個(gè)
            子元素:form-bean
           -->
           <form-beans>
            <!--
             名稱:form-bean
             描述:用來(lái)配置ActionForm Bean
             數(shù)量:任意多個(gè)
             子元素:form-property
             屬性:
              @className:指定與form-bean元素相對(duì)應(yīng)的配置類,一般默認(rèn)使用org.apaceh.struts.config.FormBeanConfig,如果自定義,則必須繼承 FormBeanConfig
              @name:必備屬性!為當(dāng)前form-bean制定一個(gè)全局唯一的標(biāo)識(shí)符,使得在整個(gè)Struts框架內(nèi),可以通過(guò)該標(biāo)識(shí)符來(lái)引用這個(gè)ActionForm Bean。
              @type:必備屬性!指明實(shí)現(xiàn)當(dāng)前ActionForm Bean的完整類名。
            -->
            <form-bean name="Hello" type="myPack.Hello">
             <!--
              名稱:form-property
              描述:用來(lái)設(shè)定ActionForm Bean的屬性
              數(shù)量:根據(jù)實(shí)際需求而定,例如,ActionForm Bean對(duì)應(yīng)的一個(gè)登陸Form中有兩個(gè)文本框,name和password,ActionForm Bean中也有這兩個(gè)字段,則此處編寫(xiě)兩個(gè)form-property來(lái)設(shè)定屬性
              屬性:
               @className:指定與form-property相對(duì)應(yīng)的配置類,默認(rèn)是org.apache.struts.config.FormPropertyConfig,如果自定義,則必須繼承FormPropertyConfig類
               @name:所要設(shè)定的ActionForm Bean的屬性名稱
               @type:所要設(shè)定的ActionForm Bean的屬性值的類
               @initial:當(dāng)前屬性的初值
             -->
             <form-property name="name" type="java.lang.String"/>
             <form-property name="number" type="java.lang.Iteger" initial="18"/>
            </form-bean>
           </form-beans>
           
           <!--
            名稱:global-exceptions
            描述:處理異常
            數(shù)量:最多一個(gè)
            子元素:exception
           -->
           <global-exceptions>
            <!--
             名稱:exception
             描述:具體定義一個(gè)異常及其處理
             數(shù)量:任意多個(gè)
             屬性:
              @className:指定對(duì)應(yīng)exception的配置類,默認(rèn)為org.apache.struts.config.ExceptionConfig
              @handler:指定異常處理類,默認(rèn)為org.apache.struts.action.ExceptionHandler
              @key:指定在Resource Bundle種描述該異常的消息key
              @path:指定當(dāng)發(fā)生異常時(shí),進(jìn)行轉(zhuǎn)發(fā)的路徑
              @scope:指定ActionMessage實(shí)例存放的范圍,默認(rèn)為request,另外一個(gè)可選值是session
              @type:必須要有!指定所需要處理異常類的名字。
              @bundle:指定資源綁定
            -->
            <exception
             key=""hello.error
             path="/error.jsp"
             scope="session"
             type="hello.HandleError"/>
           </global-exceptions>
           
           <!--
            名稱:global-forwards
            描述:定義全局轉(zhuǎn)發(fā)
            數(shù)量:最多一個(gè)
            子元素:forward
           -->
           <global-forwards>
            <!--
             名稱:forward
             描述:定義一個(gè)具體的轉(zhuǎn)發(fā)
             數(shù)量:任意多個(gè)
             屬性:
              @className:指定和forward元素對(duì)應(yīng)的配置類,默認(rèn)為org.apache.struts.action.ActionForward
              @contextRelative:如果為true,則指明使用當(dāng)前上下文,路徑以“/”開(kāi)頭,默認(rèn)為false
              @name:必須配有!指明轉(zhuǎn)發(fā)路徑的唯一標(biāo)識(shí)符
              @path:必須配有!指明轉(zhuǎn)發(fā)或者重定向的URI。必須以"/"開(kāi)頭。具體配置要與contextRelative相應(yīng)。
              @redirect:為true時(shí),執(zhí)行重定向操作,否則執(zhí)行請(qǐng)求轉(zhuǎn)發(fā)。默認(rèn)為false
            -->
            <forward name="A" path="/a.jsp"/>
            <forward name="B" path="/hello/b.do"/>
           </global-forwards>
           
           <!--
            名稱:action-mappings
            描述:定義action集合
            數(shù)量:最多一個(gè)
            子元素:action
           -->
           <action-mappings>
            <!--
             名稱:action
             描述:定義了從特定的請(qǐng)求路徑到相應(yīng)的Action類的映射
             數(shù)量:任意多個(gè)
             子元素:exception,forward(二者均為局部量)
             屬性:
              @attribute:制定與當(dāng)前Action相關(guān)聯(lián)的ActionForm Bean在request和session范圍內(nèi)的名稱(key)
              @className:與Action元素對(duì)應(yīng)的配置類。默認(rèn)為org.apache.struts.action.ActionMapping
              @forward:指名轉(zhuǎn)發(fā)的URL路徑
              @include:指名包含的URL路徑
              @input:指名包含輸入表單的URL路徑,表單驗(yàn)證失敗時(shí),請(qǐng)求會(huì)被轉(zhuǎn)發(fā)到該URL中
              @name:指定和當(dāng)前Acion關(guān)聯(lián)的ActionForm Bean的名字。該名稱必須在form-bean元素中定義過(guò)。
              @path:指定訪問(wèn)Action的路徑,以"/"開(kāi)頭,沒(méi)有擴(kuò)展名
              @parameter:為當(dāng)前的Action配置參數(shù),可以在Action的execute()方法中,通過(guò)調(diào)用ActionMapping的getParameter()方法來(lái)獲取參數(shù)
              @roles:指定允許調(diào)用該Aciton的安全角色。多個(gè)角色之間用逗號(hào)分割。處理請(qǐng)求時(shí),RequestProcessor會(huì)根據(jù)該配置項(xiàng)來(lái)決定用戶是否有調(diào)用該Action的權(quán)限
              @scope:指定ActionForm Bean的存在范圍,可選值為request和session。默認(rèn)為session
              @type:指定Action類的完整類名
              @unknown:值為true時(shí),表示可以處理用戶發(fā)出的所有無(wú)效的Action URL。默認(rèn)為false
              @validate:指定是否要先調(diào)用ActionForm Bean的validate()方法。默認(rèn)為true
             注意:如上屬性中,forward/include/type三者相斥,即三者在同一Action配置中只能存在一個(gè)。
            -->
            <action path="/search"
             type="addressbook.actions.SearchAction"
             name="searchForm"
             scope="request"
             validate="true"
             input="/search.jsp">
             <forward name="success" path="/display.jsp"/>
            </action>  
           </action-mappings>
           
           <!--
            名稱:controller
            描述:用于配置ActionServlet
            數(shù)量:最多一個(gè)
            屬性:
             @bufferSize:指定上傳文件的輸入緩沖的大小.默認(rèn)為4096
             @className:指定當(dāng)前控制器的配置類.默認(rèn)為org.apache.struts.config.ControllerConfig
             @contentType:指定相應(yīng)結(jié)果的內(nèi)容類型和字符編碼
             @locale:指定是否把Locale對(duì)象保存到當(dāng)前用戶的session中,默認(rèn)為false
             @processorClass:指定負(fù)責(zé)處理請(qǐng)求的Java類的完整類名.默認(rèn)org.apache.struts.action.RequestProcessor
             @tempDir:指定文件上傳時(shí)的臨時(shí)工作目錄.如果沒(méi)有設(shè)置,將才用Servlet容器為web應(yīng)用分配的臨時(shí)工作目錄.
             @nochache:true時(shí),在相應(yīng)結(jié)果中加入特定的頭參數(shù):Pragma ,Cache-Control,Expires防止頁(yè)面被存儲(chǔ)在可數(shù)瀏覽器的緩存中,默認(rèn)為false
           -->
           <controller
            contentType="text/html;charset=UTF-8"
            locale="true"
            processorClass="CustomRequestProcessor">
           </controller>
           <!--
            名稱:message-resources
            描述:配置Resource Bundle.
            數(shù)量:任意多個(gè)
            屬性:
             @className:指定和message-resources對(duì)應(yīng)的配置類.默認(rèn)為org.apache.struts.config.MessageResourcesConfig
             @factory:指定資源的工廠類,默認(rèn)為org.apache.struts.util.PropertyMessageResourcesFactory
             @key:
             @null:
             @parameter:
           -->
           <message-resources
            null="false"
            parameter="defaultResource"/>
           <message-resources
            key="images"
            null="false"
            parameter="ImageResources"/>
            
           <!--
            名稱:plug-in
            描述:用于配置Struts的插件
            數(shù)量:任意多個(gè)
            子元素:set-property
            屬性:
             @className:指定Struts插件類.此類必須實(shí)現(xiàn)org.apache.struts.action.PlugIn接口
           -->
           <plug-in
            className="org.apache.struts.validator.ValidatorPlugIn">
            <!--
             名稱:set-property
             描述:配置插件的屬性
             數(shù)量:任意多個(gè)
             屬性:
              @property:插件的屬性名稱
              @value:該名稱所配置的值
            -->
            <set-property
             property="pathnames"
             value="/WEB-INF/validator-rules.xml,/WEB-INF/vlaidation.xml"/>
           </plug-in>
           
          </struts-config>

          Feedback

          # re: Struts struts-config.xml 配置  回復(fù)  更多評(píng)論   

          2006-09-06 18:34 by sun7bear
          <data-sources>
          <data-source key="mssqldb" type="org.apache.commons.dbcp.BasicDataSource">
          <set-property property="autoCommit" value="true" />
          <set-property property="description" value="MySQL" />
          <set-property property="driverClass" value="com.mysql.jdbc.Driver" />
          <set-property property="maxCount" value="10" />
          <set-property property="minCount" value="2" />
          <set-property property="user" value="root" />
          <set-property property="password" value="xxmi.com" />
          <set-property property="url" value="jdbc:mysql://localhost:3306/user/" />
          </data-source>
          </data-sources>
          我想問(wèn)一下為什么我在struts-config.xml文件中加入如上data-sources時(shí)就報(bào)如下錯(cuò)誤呢?
          type Status report
          message Servlet action is not available
          description The requested resource (Servlet action is not available) is not available.

          # re: Struts struts-config.xml 配置  回復(fù)  更多評(píng)論   

          2006-09-07 09:34 by kxx129
          你報(bào)的這個(gè)錯(cuò)誤我好像還沒(méi)有注意過(guò),但用org.apache.commons.dbcp.BasicDataSource有兩點(diǎn)要注意:
          1 。在使用該驅(qū)動(dòng)時(shí),driverClass屬性應(yīng)改為driverClassName;user屬性應(yīng)改為username;這是用這種驅(qū)動(dòng)跟其他驅(qū)動(dòng)不同的,你可以改了試試
          2。在使用該驅(qū)動(dòng)時(shí),一般都不會(huì)忘記導(dǎo)入mysql驅(qū)動(dòng),但是容易忘了還需要導(dǎo)入commons-dbcp-1.2.1.jar包,才能使用其中的org.apache.commons.dbcp.BasicDataSource驅(qū)動(dòng),這個(gè)包一般在tomcat里面有(我用的是jakarta-tomcat-5.0.28),有時(shí)候還需要同時(shí)導(dǎo)入commons-pool-1.2.jar、commons-collections-3.1.jar協(xié)同使用,你看你有沒(méi)有注意這些。
          附:
          我的一個(gè)小玩意的struts-config.xml文件的data-sources配置如下:
          <data-sources >
          <data-source type="org.apache.commons.dbcp.BasicDataSource">
          <set-property property="description" value="Mysql DataSource" />
          <set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
          <set-property property="url" value="jdbc:mysql://localhost:3306/yusn" />
          <set-property property="username" value="root" />
          <set-property property="password" value="admin" />
          <set-property property="maxCount" value="5" />
          <set-property property="minCount" value="1" />
          </data-source>
          </data-sources>
          主站蜘蛛池模板: 威海市| 临夏县| 蕉岭县| 伊金霍洛旗| 通许县| 伊吾县| 遂宁市| 海淀区| 佳木斯市| 忻城县| 佛教| 嵊泗县| 秭归县| 临武县| 谷城县| 寻甸| 灌云县| 太和县| 竹溪县| 青冈县| 城步| 毕节市| 镇平县| 如东县| 阜平县| 武冈市| 当涂县| 库伦旗| 浪卡子县| 景东| 郁南县| 河间市| 慈利县| 宁强县| 通辽市| 丹阳市| 沙洋县| 益阳市| 马关县| 冕宁县| 成安县|