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>
相关推荐
接下来,创建对应的ReactActivityDelegate和PackageProvider类,以处理React Native的生命周期和包加载。这些类通常在原生应用的包名下创建。 最后,确保在原生应用的`onCreate`方法中初始化React Native的Bridge:...
`PackageProvider`是一个内容提供者,它存储了所有应用程序的相关数据。 - `SharedPreferences`用于保存用户的个性化设置,例如主屏幕布局、壁纸选择等。 - `BroadcastReceiver`监听系统广播,例如当新应用安装或...
通过查询`PackageProvider`,我们可以获取到系统中的所有安装应用的信息。下面是一段基本的代码示例,用于获取所有应用的包名和应用名称: ```java Uri packageURI = Uri.parse("content://...
2. 数据存储:Launcher2的数据存储主要依赖于Provider(ContentProvider),如PackageProvider,用于获取已安装应用的信息,以及PrefsProvider,用于存储用户的个性化设置。 3. 工作流程:用户在界面上的操作,如...
- **数据存储**:使用`PackageProvider`和`Favorites`类来存储和检索用户自定义的主屏幕布局和应用快捷方式。 - **动态加载与更新**:通过监听`BroadcastReceiver`,如`PackageInstaller`,来实时响应应用安装、...
- **com.opensymphony.xwork2.config**: 这里包含配置管理,如`ConfigurationManager`负责加载和管理配置信息,`PackageProvider`接口定义了如何获取和解析配置。 - **com.opensymphony.xwork2.util**: 提供了各种...
nuget2.8.5.208-windwos版dll文件,可通过命令下载,但缓慢:Install-PackageProvider -Name NuGet
PS C:\ > Install-PackageProvider - Name NuGet - Force PS C:\ > Register-PSRepository - Name UiPath - SourceLocation https: // www.myget.org / F / uipath - dev / api / v2 PS C:\ > Install-Module - ...
Install-PackageProvider - Name NuGet - Force Exit 要在Windows 10,Windows Server 2016,任何安装了WMF 5.0或5.1的系统上或在具有PowerShell 6的任何系统上安装PowerShellGet,请在具有提升权限的PowerShell...
PowerShell Koans 建置状态 关于作者 乔尔·萨洛(Joel Sallow) 概要 受Chris Marinos出色的,PowerShell ... 如果您以前从未安装过PowerShell模块,则需要先安装NuGet PackageProvider才能安装模块: Install-
Install-PackageProvider ChocolateyGet - Force 用法样本 搜索包裹 Find-Package - Provider ChocolateyGet - Name nodejs Find-Package - Provider ChocolateyGet - Name firefox * 安装套件 Find-Package nodejs...