actionconfig解析
Comment [h1]: 请求转发 struts-config.xml 文件中每一个 元素对应着一个 org.apache.struts.action.ActionMapping。ActionMapping 继承自 org.apache.struts.config.ActionConfig 元素包含零个或多个 元素, 元素描述了从特定的请求路 径到响应的 Action 类的影射,元素中包含多个和 子元素,它 们分别配置局部的异常处理及请求转发仅当前的 Action 所访问。 元素中的 className 是和元素对应的配置元素。默认为 org.apache.struts.action.ActionMapping。 元素中的 attribute 是设置和 Action 关联的 Action Bean 在 request 或 session 范 围内的属性 Key。如: Bean 存在于 request 范围内,并且此项设为“myBean“,那么 request.getAttribute(“myBean“)就可以返回该 Bean 的实例。此项为可选,它在 ActionConfig 中对应的属性为 String attribute。 元素中的 forward 是指定转发的 URL 路径。它在 ActionConfig 中对应的属性 为 HashMap forward 。 元素中的 include 是指定包含的 URL 路径。它在 ActionConfig 中对应的属 性为 String include 。 元素中的 是指定包含输入表单的 URL 路径。当表单验证失败时, 将把请求转发到该 URL 。它在 ActionConfig 中对应的属性为 String 。 元素中的 name 是指定和该 Action 关联的 Action Bean 的名字。该名 字必须在元素中定义过。此项是可选的。它在 ActionConfig 中对应的属性 为 String name 。 元素中的 path 是指定访问 Action 的路径,它以“/“ 开头,没有扩展名。它 在 ActionConfig 中对应的属性为 String path。 元素中的 parameter 是指定 Action 的配置参数。在 Action 类的 cute()方 法中,可以调用 ActionMapping 对象的 getParocessor()方法来读取该配置参数。它在 ActionConfig 中对应的属性为 String parameter 。 元素中的 roles 是指定允许调用该 Action 的安全角色。多个角色之间以逗号隔开。 在处理请求时,RequestProcessor 会根据该配置项来决定用户是否有调用 Action 的权限。 它在 ActionConfig 中对应的属性为 String roles。 元素中的 scope 是指定 Action Bean 的存在范围,可选值为 request 和 session。默认为 session。它在 ActionConfig 中对应的属性为 String scope 。 元素中的 type 是指定 Action 类的完整类名。它在 ActionConfig 中对应的 属性为 String type。 元素中的 unknown 项为 true,表示可以处理用户发出的所有无效的 Action URL 。 默认为 false 。它在 ActionConfig 中对应的属性为 boolean unknown 。 元素中的 validate 是指定是否要先调用 Action Bean 的 validate() 方法。默 认为 true 。它在 ActionConfig 中对应的属性为 boolean validate。 ActionConfig 类中的 HashMap exceptions 属性对应的是包含的零个到多个 元素的信息 ActionConfig 类中方法解析 public class ActionConfig implements Serializable { protected boolean configured = false;protected HashMap exceptions = new HashMap();protected HashMap forwards = new HashMap();protected ModuleConfig moduleConfig = null;public ModuleConfig getModuleConfig() {return (this.moduleConfig);}public void setModuleConfig(ModuleConfig moduleConfig) {if (configured) {throw new IllegalStateException(“Configuration is frozen“);}this.moduleConfig = moduleConfig;}protected String attribute = null;public String getAttribute() {if (this.attribute == null) {return (this.name);} else {return (this.attribute);}}public void setAttribute(String attribute) {if (configured) {throw new IllegalStateException(“Configuration is frozen“);}this.attribute = attribute;}protected String forward = null;public String getForward() {return (this.forward);}