`

PackageProvider

 
阅读更多

PackageProvider 用于将struts xml中的package元素转成PackageConfig对象。

 

 由DefaultConfiguration 调用PackageProvider.loadPackages()方法,生成多个PackageConfig对象。

DefaultConfiguration 对PackageConfig对象处理生成RuntimeConfiguration。

 

RuntimeConfiguration在struts处理请求流程中被使用,struts解析请求的url而生成namesapce 和 actionName,从RuntimeConfiguration就可以获取对应Action的配置信息ActionConfig. 

 

 



 strus中 xml的配置元素:

 

<struts>  
    <!--用于对bean的定义,置于Contatiner中-->  
    <bean type="类型" name="实现类名称(为空则取默认值default)" class="实现类全路径" static="true/false(是否只是静态注入)" scope="default|request|session|singleton|thread"/>  
      
    <constant name="param1" value="value1">   
    <!--用于对bean参数的配置Contatiner中,可以代替properties文件-->  
      
      
 <package name="包名" namespace="/ 或 /xxx 或 /xxx/yyy " extends="struts-default(多个用逗号分隔,自动继承)" abstract="true/false (true:被子类扩展时才能被使用)" strict-method-invocation="">  
             <result-types>  
                <result-type name="结果类型名称" class="结果类型实现类" default="是否为默认的">  
                    <param name="param1">value1</param>  
                </result-type>  
              </result-types>  
            <interceptors>  
                <interceptor name="栏截器名称" class="栏截器实现类" >  
                        <param name="param1">value1</param>  
                </interceptor>      
          </interceptors>  
            <interceptor-stack name="栏截器堆栈名称">  
                    <interceptor-ref name="栏截器名称1|栏截器堆栈名称1">  
                        <param name="param1">value1</param>  
                    </interceptor-ref>  
                  <interceptor-ref name="栏截器名称2|栏截器堆栈名称2">  
                    <interceptor-ref name="栏截器名称3||栏截器堆栈名称3">  
          </interceptor-stack>  
          <interceptor-stack name="">  
                    。。。。。。  
          </interceptor-stack>  
            
          <default-interceptor-ref name="栏截器名称|栏截器堆栈名称">  
            <default-class-ref class=""/>  
              
       <global-results>  
           <result name="ACTION的返回值(不设置默认取success)" type="结果类型名称(如果为空则取本包或父包中result-type.default=true的)">  
            [<param name="param1">value1</param>|value值(需要result-type.class类中有DEFAULT_PARAM = 默认参数名,来对应value值)  ]  
           </result>  
       </global-results>  
  
  
       <global-exception-mappings>  
           <exception-mapping name ="为空取result属性" exception="java.lang.Exception" result="对应global-results.result.name">  
            <param name="param1">value1</param>  
           </exception-mapping>  
       </global-exception-mappings>  
  
       <action name="支持通配符 (如[*!*|*_*|User_*]),在method 或result中可以使用{1}或{2}表示第一个或第二个通配符值" class="如果未配置则取default-class" method="未定义则从url中获取,未取到则使用execute">  
            <result name="ACTION的返回值(不设置默认取success)" type="结果类型名称(如果为空则取result-type.default=true的)">  
            [<param name="param1">value1</param>|value值(需要result-type.class类中有DEFAULT_PARAM = 默认参数名,来对应value值)  ]  
           </result>  
            <!--本pagckage 和父package 中的global-results中的result 自动被添加进来 -->
            
           <exception-mapping name ="为空取result属性" exception="java.lang.Exception" result="对应action-results.result.name 或 global-results.result.name">  
            <param name="param1">value1</param>  
           </exception-mapping>
           <!--本pagckage 和父package 中的global-exception-mappings中的exception-mapping 自动被添加进来-->  
           
           
           <interceptor-ref name="栏截器名称1">  
                        <param name="param1">value1</param>(用于覆盖“栏截器名称1”定义时的参数)  
                    <interceptor-ref name="栏截器堆栈名称1">  
                        <param name="堆栈内栏截器名称1.param1">value1</param>(用于覆盖(栏截器堆栈名称1中某个栏截器)定义时的参数)  
                    </interceptor-ref> 
                    <!--如果未定义interceptor,则从本包中取默认的拦截器,没有默认则到父包中找--> 
                    
                    <allowed-methods>  
                    允许的方法名,多个方法名用逗号分隔  
                  </allowed-methods>  
       </action>  
         
       <default-action-ref name="name">  
   </package>  
   </struts>  
     

 

  • 大小: 384.8 KB
分享到:
评论

相关推荐

    Android原生项目集成最新版本ReactNative

    接下来,创建对应的ReactActivityDelegate和PackageProvider类,以处理React Native的生命周期和包加载。这些类通常在原生应用的包名下创建。 最后,确保在原生应用的`onCreate`方法中初始化React Native的Bridge:...

    Android源码Launcher部分

    `PackageProvider`是一个内容提供者,它存储了所有应用程序的相关数据。 - `SharedPreferences`用于保存用户的个性化设置,例如主屏幕布局、壁纸选择等。 - `BroadcastReceiver`监听系统广播,例如当新应用安装或...

    Android应用源码之获取系统程序信息.zip

    通过查询`PackageProvider`,我们可以获取到系统中的所有安装应用的信息。下面是一段基本的代码示例,用于获取所有应用的包名和应用名称: ```java Uri packageURI = Uri.parse("content://...

    android Launcher2 源代码

    2. 数据存储:Launcher2的数据存储主要依赖于Provider(ContentProvider),如PackageProvider,用于获取已安装应用的信息,以及PrefsProvider,用于存储用户的个性化设置。 3. 工作流程:用户在界面上的操作,如...

    带注释的Launcher3

    - **数据存储**:使用`PackageProvider`和`Favorites`类来存储和检索用户自定义的主屏幕布局和应用快捷方式。 - **动态加载与更新**:通过监听`BroadcastReceiver`,如`PackageInstaller`,来实时响应应用安装、...

    struts-2.0.11.2源码

    - **com.opensymphony.xwork2.config**: 这里包含配置管理,如`ConfigurationManager`负责加载和管理配置信息,`PackageProvider`接口定义了如何获取和解析配置。 - **com.opensymphony.xwork2.util**: 提供了各种...

    nuget2.8.5.208-windwos

    nuget2.8.5.208-windwos版dll文件,可通过命令下载,但缓慢:Install-PackageProvider -Name NuGet

    orchestrator-powershell:UiPath Orchestrator PowerShell cmdlet 库

    PS C:\ &gt; Install-PackageProvider - Name NuGet - Force PS C:\ &gt; Register-PSRepository - Name UiPath - SourceLocation https: // www.myget.org / F / uipath - dev / api / v2 PS C:\ &gt; Install-Module - ...

    meu-terminal

    Install-PackageProvider - Name NuGet - Force Exit 要在Windows 10,Windows Server 2016,任何安装了WMF 5.0或5.1的系统上或在具有PowerShell 6的任何系统上安装PowerShellGet,请在具有提升权限的PowerShell...

    PSKoans:通过Pester单元测试来学习PowerShell语言的一种简单,有趣且交互式的方式

    PowerShell Koans 建置状态 关于作者 乔尔·萨洛(Joel Sallow) 概要 受Chris Marinos出色的,PowerShell ... 如果您以前从未安装过PowerShell模块,则需要先安装NuGet PackageProvider才能安装模块: Install-

    ChocolateyGet:ChocolateyGet提供程序允许通过OneGet从Chocolatey.org存储库下载软件包

    Install-PackageProvider ChocolateyGet - Force 用法样本 搜索包裹 Find-Package - Provider ChocolateyGet - Name nodejs Find-Package - Provider ChocolateyGet - Name firefox * 安装套件 Find-Package nodejs...

Global site tag (gtag.js) - Google Analytics