一、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>