posts - 10, comments - 9, trackbacks - 0, articles - 17

          關于struts-config.xml.

          Posted on 2008-11-27 16:53 wesley1987 閱讀(1113) 評論(0)  編輯  收藏 所屬分類: struts學習項目
          今天試著不用自動生成,手動配置了一次struts。結果是 傳到Action的form 一直為空,上網查尋后原因是:

          在struts-config.xml   <action>里的name屬性值要和你的formbean里的name屬性值要一致,validate屬性值要為true,要是沒寫默認為true

          看來有必要詳看下struts-config.xml的配置。以下是復制于網上的“struts-config.xml詳解”:
           http://www.9php.com/college/net/java/qt/2006/07/522422119091.html
          Struts的核心是struts-config.xml配置文件,在這個文件里描述了所有的Struts組件。在這里包括配置主要的組件及次要的組件,下面是struts-config.xml包含主要元素的內容:

          一、        struts-config.xml的主要元素:
          <?xml  version=”1.0”  encoding=”ISO-8859-1”?>
          <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
          <struts-config>
               
               <data-sources>
                       <data-source>
                       </data-source>
               </data-sources>

               <form-beans>
                       <form-bean  name =“ ”  type=“ ”   / >
               </form-beans>

              <global-exceptions />

               <global-forwards>
                       <forward  /  >
               </global-forwards>

               <action-mappings>
                       <action  /  >
               </action-mappings>

               <controller  /  >

               <message-resources  /  >

               <plug-in  />

          </struts-config>
          注意:以上各元素的順序是非常重要的,你的struts-config.xml配置文件必須按照這個順序進行配置,否則在你的容器啟動的時候就會出錯。


          二、        struts-config.xml的子元素:
          1.<icon / >子元素
               它包含<small-icon  /  >及<large-icon  /  >,它的作用是圖形化其父元素,<small-icon/>的內容是一個16x16的圖像文件,而<large-icon/>的內容是一個32x32的圖像文件。如下例子:
               <icon>
          <small-icon>
                                     /images/smalllogo.gif
          </small-icon>
          <large-icon>
                 /images/largelogo.gif
          </large-icon>
          </icon>
          2.<display-name  /  >子元素
               它提供對父元素的短文字(short  textual)描述信息,如下:
               <display-name>
                               short  textual  discription  of  its  parent  element
               </display-name>
          3.<description  /  >子元素
               它提供對父元素的完全(full-length  textual)的描述信息,如下:
          <description>
          full-length  textual  discription  of  its  parent  element
          </description>
          4.<set-property  /  >子元素
                       它用來設置它的父元素中設定的JavaBean的屬性值,它一般用在指定的GenericDataSource  屬性,擴展的ActionMappings以及擴展的  global  forwards。如下:
                       <set-property  
                               property="name  of  bean  property"              
          value="value  of  bean  property"  />
                           例如:
                           <set-property  property="driverClass"  value="org.gjt.mm.mysql.Driver"  />
                         <set-property  property="user"  value="admin"/>
                         <set-property  property="maxCount"  value="4"/>
          <set-property  property="minCount"  value="2"/>  
          <set-property  property="password"  value=""/>  
          <set-property  property="url"  value="jdbc:mysql://localhost:3306/struts"/>


          三、        配置JDBC數據源
          其配置形式如下:
          <data-sources>
          <data-source>
          <set-property  property="driverClass"  value="fully  qualified  path  of  JDBC  driver"/>
          <set-property  property="url"  value="data  source  URL"/>
          <set-property  property=”mincount”  value="the  minimum  number  of  connections  to  open"/>
          <set-property  property="password"  value="the  password  used  to  create  connections"/>
          <set-property  property="user"  value="the  username  used  to  create  connections"/>
          </data-source>
          </data-sources>
          <data-source>的屬性及其描述信息如下:
          Key        綁定在ServletContext上的DataSource實例的索引鍵,若不設定則缺省為Action.DATA_SOURCE_KEY,如果在應用程序中有多于一個的DataSource,則必須設置Key的值。
          DriverClass        所用的JDBC驅動類(必須的)如:com.microsoft.jdbc.sqlserver.SQLServerDriver
          url        所用的JDBC的URL(必須的)如:jdbc:microsoft:sqlserver://xg088:1433
          MaxCount        同時打開的最大連結數,缺省值為2(可選的)
          MinCount        同時打開的最小連結數,缺省值為1(可選的)
          User        連結到數據庫的用戶名(必須的)
          Password        連結到數據庫的密碼(必須的)
          Description        關于DataSource的描述信息(可選的)
          ReadOnly        如果設為true,則表示該連結是只讀的,缺省為false。(可選的)
          LoginTimeout        創建連結的最大允許時間,以秒為單位。(可選的)
          AutoCommit        如果為true,則每次execute之后會強制回滾。缺省為true。(可選的)
          舉例說明:
          <data-sources>
                 <data-source>
                         <set-property  property=”key”  value=”  value="WILEY_DATA_SOURCE"  />
                          <set-property  property="driverClass"  value="org.gjt.mm.mysql.Driver"  />
                          <set-property  property="url"  value="jdbc:mysql://localhost/wileyusers"  />
                          <set-property  property="maxCount"  value="5"/>
                          <set-property  property="minCount"  value="1"/>
                          <set-property  property="user"  value="sa"/>
                          <set-property  property="password"  value="yourpassword"/>
                  </data-source>
          </data-sources>


          四、        配置FormBean
          <form-bean  /  >用來定義將要綁定到Action的FormBean的實例。語法如下:
          <form-beans>
          <form-bean  name="name  used  to  uniquely  identify  a  FormBean"   type=”fully  qualified  class  name  of  FormBean"/>
                           </form-beans>
          例:
                  <form-beans>
                      <form-bean  name="lookupForm"  type="wiley.LookupForm"  />
                  </form-beans>



          五、        配置全局轉發
          全局轉發可以定義幾個<forward/>子元素,struts首先會在<action-mappings>元素中找對應的<forward>,若找不到,則到全局轉發配置中找。語法如下:
          <global-forwards>
          <forward  name="unique  target  identifier"  
          path="context-relative  path  to  targetted  resource  "/>
          </global-forwards>
          除了name及path屬性之外,還有一個redirect屬性,如果redirect設為true的時候,則用HttpServletResponse.sendRedirect()方法,否則用RequestDispatcher.forward()方法,缺省為false。
          注:如果為true,則用HttpServletResponse.sendRedirect()方法,此時存儲在原來的HttpServletRequest中的值將會丟失。
          例子:
          <global-forwards>
          <forward  name="success"  path="/welcome.jsp"/>
          <forward  name="failure"  path="/index.jsp"/>
          </global-forwards>


          六、        配置<action-mappings>
          它可以定義幾個<action  /  >子元素,它主要是定義Action實例到ActionServlet類中,語法如下:
          <action-mappings>
          <action  path="context-relative  path  mapping  action  to  a  request"
          type="fully  qualified  class  name  of  the  Action  class"
          name="the  name  of  the  form  bean  bound  to  this  Action">
          <forward  name="forwardname1"  path="context-relative  path"/>
          <forward name="forwardname2" path="context-relative path"/>
          </action>
          </action-mappings>
          <action/>屬性及其描述信息如下:
          屬  性    描 述 信 息
          Path    在瀏覽器的URL中輸入的字符(必須的)
          Type    連結到本映射的Action的全稱(可選的)
          Name    與本操作關聯的Action Bean在<form-bean/>中定義name名(可選的)
          Scope    指定ActionForm Bean的作用域(session和request),缺省為session。(可選的)
          Input    當Bean發生錯誤時返回的控制。(可選的)
          ClassName    指定一個調用這個Action類的ActionMapping類的全名。缺省用org.apache.struts.action.ActionMapping,(可選的)
          Forward    指定處理相應請求所對應的JSP頁面。(可選的)
          Include    如果沒有forward的時候,它起forward的作用。(可選的)
          Validate    若為true,則會調用ActionForm的validate()方法,否則不調用,缺省為true。(可選的)
          例子:
          <action-mappings>
              <action path="/lookupAction" 
                      type="wiley.LookupAction"
                      name="LookupForm"
                      scope="request"
                      validate="true"
                      input="/index.jsp">
                  <forward name="success" path="/quote.jsp"/>
                  <forward name="faliue" path="/index.jsp"/>
              </action>
          </action-mappings>



          七、    配置RequestProcessor
          在struts-config.xml文件中用<controller/>子元素來定義RequestProcessor,其語法格式如下:
          <controller processorClass="fully qualified class name" />
          <controller />元素屬性及其描述信息如下:
          屬  性    描  述
          processorClass    指定自定義的RequestProcessor類的全名
          BufferSize    指定用來下載所用的緩存大小。缺省是4096字節。
          contentType    定義response文本類型,缺省是text/html
          Debug    定義當前系統的除錯級別,缺省是0
          Locale    如果是true,則在用戶的session中存放Locale對象,缺省為true
          maxFileSize    指定下載文件最大的大小。缺省是250M
          multipartClass    指定去代替org.apache.struts.upload.DiskMultipartRequestHandler類的類的全名。
          Nocache    如果是true,則會關閉每個response的緩存功能。缺省是false
          TempDir    指定上載文件所用的臨時目錄。缺省值由容器決定
          例子:
           <controller processorClass="wiley.WileyRequestProcessor" />
          ② <controller    contentType="text/html;charset=UTF-8"
                                  debug="3"
                                  locale="true"
                                  nocache="true"
                                  processorClass="org.apache.struts.action.RequestProcessor"/>



          八、    配置Message Resources
          在struts-config.xml文件中用<message-resources />元素來定義消息資源。其語法如下:
                 <message-resources  parameter="wiley.ApplicationResources"/>
          <message-resources />元素屬性及其描述信息如下:
          屬  性    描  述
          Parameter    給定資源文件全名
          ClassName    定義處理消息資源的類名的全名,缺省是org.apache.struts.config.MessageResourcesConfig
          Factory    定義MessageResourcesFactory類的全名,缺省是org.apache.struts.util.property.MessageResourcesFacotry
          Key    定義綁定在這個資源包中的ServletContext的屬性主鍵,缺省值是Action.MESSAGES_KEY.
          Null    如果為true,則找不到消息key時,則返回null,缺省是true.
          例子:
          ① <message-resources parameter="wiley.ApplicationResources"/>
          ② <message-resources
              parameter="StorefrontMessageResources"
              null="false"/>
          <message-resources
              key="IMAGE_RESOURCE_KEY"
              parameter="StorefrontImageResources"
              null="false"/>

          注意:設定key的目的如下:
          <html:img altKey="navbar.home.image.alt" bundle="IMAGE_RESOURCE_KEY" pageKey="navbar.home.image" width="125" height="15" border="0"/>
          這里說明要到StorefrontImageResources.properties資源文件中找主鍵值是”navbar.home.image”所對應的值。
          這里StorefrontImageResources.properties的內容如下:
          ……
          navbar.home.image=/images/home.gif
          navbar.home.image.alt=Home
          ……
          此處navbar.home.image.alt說明的和<img alt=”Home”……/>一樣。


          九、    配置Plug-in
          配置Plug-in如下:
          <plug-in className="wiley.WileyPlugin"/>
          也可如下:
          <plug-in className="com.oreilly.struts.storefront.service.memory.StorefrontMemoryDatabasePlugIn">
            <set-property property="pathname" value="/WEB-INF/database.xml"/>
          </plug-in>

          下面是我現在的struts-config.xml文件:
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

          <struts-config>
            
          <form-beans >
              
          <form-bean name="OfferForm" type="com.neusoft.struts.form.OfferForm" />

            
          </form-beans>

            
          <global-exceptions />
            
          <global-forwards />
            
          <action-mappings >
              
          <action
                    
          attribute="OfferForm"
                    input
          ="/service/offerNew.jsp"
                    name
          ="OfferForm"
                    path
          ="/addOffer"
                    scope
          ="request"
                    type
          ="com.neusoft.struts.action.AddOfferAction">
                    
          <forward name="message" path="/service/message.jsp" />
                    
          <forward name="fail" path="/service/offerNew.jsp" />
              
          </action>
              
          <action path="/offerSearch"
                      input
          ="/service/offerSearch.jsp"
                      scope
          ="request" 
                      type
          ="com.neusoft.struts.action.OfferSearchAction">
                        
          <forward name="show" path="/service/offerSearch.jsp" />
              
          </action>
              
          <action  attribute="OfferForm"
                      name
          ="OfferForm"
                      path
          ="/offerUpdate"
                      input
          ="/service/offerUpdate.jsp"
                      scope
          ="request"
                      type 
          ="com.neusoft.struts.action.OfferUpdateAction" >
                      
          <forward name="message" path="/service/message.jsp"/>
                       
          <forward name="fail" path="/service/offerUpdate.jsp" />
              
          </action>
            
          </action-mappings>

            
          <message-resources parameter="com.neusoft.struts.ApplicationResources" />
          </struts-config>

          主站蜘蛛池模板: 淮滨县| 松桃| 南宫市| 龙南县| 阳曲县| 瓮安县| 乌兰浩特市| 阳原县| 九龙县| 富平县| 麦盖提县| 故城县| 保亭| 吐鲁番市| 寿阳县| 朝阳市| 科技| 大方县| 天门市| 双鸭山市| 广饶县| 大城县| 简阳市| 保康县| 阳信县| 徐汇区| 巨鹿县| 平顶山市| 荆门市| 香格里拉县| 长宁县| 徐州市| 上高县| 太白县| 新乐市| 金华市| 临沭县| 偃师市| 新龙县| 望谟县| 色达县|