java痛苦學習之路[四]---關於struts2-convention-plugin使用

來源:互聯網
上載者:User

一、struts2-convention-plugin設定檔詳解

<constant name="struts.convention.actionConfigBuilder" value="convention"/>
  <constant name="struts.convention.actionNameBuilder" value="convention"/>
  <constant name="struts.convention.resultMapBuilder" value="convention"/>
  <constant name="struts.convention.interceptorMapBuilder" value="convention"/>
  <constant name="struts.convention.conventionsService" value="convention"/>

  <constant name="struts.convention.result.path" value="/WEB-INF/content/"/>
  設定Convention外掛程式定位視圖資源的根路徑。預設值為/WEB-INF/content/
  <constant name="struts.convention.result.flatLayout" value="true"/>
  如果設定為false,則可以將視圖頁面放置Action對應的目錄下(無需放入/WEB-INF/content/下)
  <constant name="struts.convention.action.suffix" value="Action"/>
  Convention搜尋Action類的類名尾碼。預設值為Action
  <constant name="struts.convention.action.disableScanning" value="false"/>
  是否通過禁止包掃描Action。預設值是false
  <constant name="struts.convention.action.mapAllMatches" value="false"/>
  設定即使沒有@Action注釋,依然建立Action映射。預設值是false
  <constant name="struts.convention.action.checkImplementsAction" value="true"/>
  設定是否實現了Action介面的類映射成Action。預設值是ture
  <constant name="struts.convention.default.parent.package" value="convention-default"/>
  設定Convention映射的Action所在包的預設父包。預設值是convention-default
  <constant name="struts.convention.action.name.lowercase" value="true"/>
  設定映射Action時,是否將Action的name屬性值轉為所有字母小寫。預設值是true
  <constant name="struts.convention.action.name.separator" value="-"/>
  設定映射Action時指定name屬性值個單詞之間的分隔字元。預設值是中畫線
  <constant name="struts.convention.package.locators" value="action,actions,struts,struts2"/>
  Convention外掛程式使用該常量指定包作為搜尋Action的根包預設值是action,actions,struts,strtus2
  <constant name="struts.convention.package.locators.disable" value="false"/>
  指定禁止從Action的根包裡所搜Action。預設值是false
  <constant name="struts.convention.package.locators.basePackage" value=""/>
  如果指定了該常量,Convention只會從以該常量值開始的包中搜尋Action類。
  <constant name="struts.convention.exclude.packages" value="org.apache.struts.*,org.apache.struts2.*,org.springframework.web.struts.*,org.springframework.web.struts2.*,org.hibernate.*"/>
  指定排除在搜尋Action之外的包。預設值為org.apache.struts.*,org.apache.struts2.*,org.springframework.web.struts.*,org.springframework.web.struts2.*,org.hibernate.*
  <constant name="struts.convention.relative.result.types" value="dispatcher,velocity,freemarker"/>
  指定Convention映射Result時預設支援的結果類型。預設值是dispatcher,velocity,freemarker
  <constant name="struts.convention.redirect.to.slash" value="true"/>
  設定是否重新導向到斜線(/)。例如使用者請求/foo,但/foo不存在時,如果設定該常量為則可重新導向到/foo/。預設值是true
  <constant name="struts.convention.action.alwaysMapExecute" value="true"/>
  <constant name="struts.mapper.alwaysSelectFullNamespace" value="true"/>
  <!-- <constant name="struts.convention.action.includeJars"  /> -->
  <constant name="struts.convention.action.fileProtocols" value="jar" />
  <constant name="struts.convention.classes.reload" value="false" />
  <constant name="struts.convention.exclude.parentClassLoader" value="true" />


二、工程執行個體

     (一) struts2-convention-plugin依賴包,放到工程lib目錄下:

            

   (二) web.xml 配置

    

 (三) strut2.xml配置

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
  <constant name="struts.devMode" value="true"/>                                   <!-- 開發模式 -->
  <constant name="struts.configuration.xml.reload" value="true" /> <!-- 設定檔重新載入 -->  
  <constant name="struts.i18n.encoding" value="UTF-8"/>                           <!-- Web運用編碼 -->
  <constant name="struts.convention.result.path" value="/" />                 <!-- 搜尋視圖資源的路徑 -->
  <constant name="struts.convention.action.name.separator" value="_" />    <!-- Action類名分隔字元 -->
  <constant name="struts.convention.classes.reload" value="true" />              <!-- convention類重載入 -->
  <constant name="struts.convention.action.suffix" value="Action" />             <!-- Action尾碼名 -->
  <constant name="struts.action.extension" value="action,do,html,htm,php,aspx" /> <!-- Action副檔名 -->
  <constant name="struts.convention.package.locators" value="action,actions" />   <!-- 搜尋Action資源的包路徑 -->
  
  <!-- 啟用動態方法引動過程 true:actionName!Method.action這種形式好用,false:actionName!Method不好用-->  
  <constant name="struts.enable.DynamicMethodInvocation" value="true" />
  <!-- 結果類型 -->  
  <constant name="struts.convention.relative.result.types" value="dispatcher,freemarker"/>
  <!-- 基於什麼包 -->  
  <constant name="struts.convention.package.locators.basePackage" value="net.yeah.fancydeepin.action"/>
  <!-- 名稱首字母小寫 -->  
  <constant name="struts.convention.action.name.lowercase" value="true"/>
  <!-- 檢查是否實現action -->  
  <package name="default" extends="struts-default"> 
<interceptors>  
       <interceptor-stack name="defaultStack">  
           <interceptor-ref name="exception" />  
           <interceptor-ref name="servletConfig" />  
           <interceptor-ref name="actionMappingParams" />  
           <interceptor-ref name="staticParams" />  
           <interceptor-ref name="params" />  
       </interceptor-stack>  
   </interceptors> 
  </package>
</struts>


 (四) 在src目錄下建立DemoAction類,配置如下圖所示:

    

  (五) 在工程webRoot目錄下,新增index.jsp 和error.jsp,index.jsp 檔案內容裡面加

       <a href="./demo!error.action">建置錯誤</a>

      

    




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.