java痛苦学习之路[四]---关于struts2-convention-plugin使用

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


二、project实例

     (一) struts2-convention-plugin依赖包,放到projectlib文件夹下:

            

   (二) 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类,配置例如以下图所看到的:

    

  (五) 在projectwebRoot文件夹下,新增index.jsp 和error.jsp,index.jsp 文件内容里面加

       <a href="./demo!error.action">生成错误</a>

      

    




原文地址:https://www.cnblogs.com/lxjshuju/p/7026989.html