⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configruleset.java.svn-base

📁 MVC开源框架
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
/* * $Id$ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements.  See the NOTICE file * distributed with this work for additional information * regarding copyright ownership.  The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License.  You may obtain a copy of the License at * *  http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied.  See the License for the * specific language governing permissions and limitations * under the License. */package org.apache.struts.config;import org.apache.commons.digester.AbstractObjectCreationFactory;import org.apache.commons.digester.Digester;import org.apache.commons.digester.Rule;import org.apache.commons.digester.RuleSetBase;import org.apache.commons.digester.SetPropertyRule;import org.apache.struts.util.RequestUtils;import org.xml.sax.Attributes;/** * <p>The set of Digester rules required to parse a Struts configuration file * (<code>struts-config.xml</code>).</p> * * @version $Rev$ $Date: 2005-08-16 15:53:27 -0400 (Tue, 16 Aug 2005) *          $ * @since Struts 1.1 */public class ConfigRuleSet extends RuleSetBase {    // --------------------------------------------------------- Public Methods    /**     * <p>Add the set of Rule instances defined in this RuleSet to the     * specified <code>Digester</code> instance, associating them with our     * namespace URI (if any).  This method should only be called by a     * Digester instance.  These rules assume that an instance of     * <code>org.apache.struts.config.ModuleConfig</code> is pushed onto the     * evaluation stack before parsing begins.</p>     *     * @param digester Digester instance to which the new Rule instances     *                 should be added.     */    public void addRuleInstances(Digester digester) {        ClassLoader cl = digester.getClassLoader();        digester.addRule("struts-config/action-mappings",            new SetActionMappingClassRule());        digester.addFactoryCreate("struts-config/action-mappings/action",            new ActionMappingFactory(cl));        digester.addSetProperties("struts-config/action-mappings/action");        digester.addSetNext("struts-config/action-mappings/action",            "addActionConfig", "org.apache.struts.config.ActionConfig");        digester.addRule("struts-config/action-mappings/action/set-property",            new BaseConfigSetPropertyRule());        digester.addObjectCreate("struts-config/action-mappings/action/exception",            "org.apache.struts.config.ExceptionConfig", "className");        digester.addSetProperties(            "struts-config/action-mappings/action/exception");        digester.addSetNext("struts-config/action-mappings/action/exception",            "addExceptionConfig", "org.apache.struts.config.ExceptionConfig");        digester.addRule("struts-config/action-mappings/action/exception/set-property",            new BaseConfigSetPropertyRule());        digester.addFactoryCreate("struts-config/action-mappings/action/forward",            new ActionForwardFactory(cl));        digester.addSetProperties(            "struts-config/action-mappings/action/forward");        digester.addSetNext("struts-config/action-mappings/action/forward",            "addForwardConfig", "org.apache.struts.config.ForwardConfig");        digester.addRule("struts-config/action-mappings/action/forward/set-property",            new BaseConfigSetPropertyRule());        digester.addObjectCreate("struts-config/controller",            "org.apache.struts.config.ControllerConfig", "className");        digester.addSetProperties("struts-config/controller");        digester.addSetNext("struts-config/controller", "setControllerConfig",            "org.apache.struts.config.ControllerConfig");        digester.addRule("struts-config/controller/set-property",            new BaseConfigSetPropertyRule());        digester.addRule("struts-config/form-beans",            new SetActionFormBeanClassRule());        digester.addFactoryCreate("struts-config/form-beans/form-bean",            new ActionFormBeanFactory(cl));        digester.addSetProperties("struts-config/form-beans/form-bean");        digester.addSetNext("struts-config/form-beans/form-bean",            "addFormBeanConfig", "org.apache.struts.config.FormBeanConfig");        digester.addObjectCreate("struts-config/form-beans/form-bean/form-property",            "org.apache.struts.config.FormPropertyConfig", "className");        digester.addSetProperties(            "struts-config/form-beans/form-bean/form-property");        digester.addSetNext("struts-config/form-beans/form-bean/form-property",            "addFormPropertyConfig",            "org.apache.struts.config.FormPropertyConfig");        digester.addRule("struts-config/form-beans/form-bean/form-property/set-property",            new BaseConfigSetPropertyRule());        digester.addRule("struts-config/form-beans/form-bean/set-property",            new BaseConfigSetPropertyRule());        digester.addObjectCreate("struts-config/global-exceptions/exception",            "org.apache.struts.config.ExceptionConfig", "className");        digester.addSetProperties("struts-config/global-exceptions/exception");        digester.addSetNext("struts-config/global-exceptions/exception",            "addExceptionConfig", "org.apache.struts.config.ExceptionConfig");        digester.addRule("struts-config/global-exceptions/exception/set-property",            new BaseConfigSetPropertyRule());        digester.addRule("struts-config/global-forwards",            new SetActionForwardClassRule());        digester.addFactoryCreate("struts-config/global-forwards/forward",            new GlobalForwardFactory(cl));        digester.addSetProperties("struts-config/global-forwards/forward");        digester.addSetNext("struts-config/global-forwards/forward",            "addForwardConfig", "org.apache.struts.config.ForwardConfig");        digester.addRule("struts-config/global-forwards/forward/set-property",            new BaseConfigSetPropertyRule());        digester.addObjectCreate("struts-config/message-resources",            "org.apache.struts.config.MessageResourcesConfig", "className");        digester.addSetProperties("struts-config/message-resources");        digester.addSetNext("struts-config/message-resources",            "addMessageResourcesConfig",            "org.apache.struts.config.MessageResourcesConfig");        digester.addRule("struts-config/message-resources/set-property",            new BaseConfigSetPropertyRule());        digester.addObjectCreate("struts-config/plug-in",            "org.apache.struts.config.PlugInConfig");        digester.addSetProperties("struts-config/plug-in");        digester.addSetNext("struts-config/plug-in", "addPlugInConfig",            "org.apache.struts.config.PlugInConfig");        digester.addRule("struts-config/plug-in/set-property",            new PlugInSetPropertyRule());        // PluginConfig does not extend BaseConfig, at least for now.    }}/** * <p> Class that records the name and value of a configuration property to be * used in configuring a <code>PlugIn</code> instance when instantiated. </p> */final class PlugInSetPropertyRule extends Rule {    public PlugInSetPropertyRule() {        super();    }    public void begin(String namespace, String names, Attributes attributes)        throws Exception {        PlugInConfig plugInConfig = (PlugInConfig) digester.peek();        plugInConfig.addProperty(attributes.getValue("property"),            attributes.getValue("value"));    }}/** * <p> Class that sets the name of the class to use when creating action form * bean instances. The value is set on the object on the top of the stack, * which must be a <code>org.apache.struts.config.ModuleConfig</code>. </p> */final class SetActionFormBeanClassRule extends Rule {    public SetActionFormBeanClassRule() {        super();    }    public void begin(String namespace, String name, Attributes attributes)        throws Exception {        String className = attributes.getValue("type");        if (className != null) {            ModuleConfig mc = (ModuleConfig) digester.peek();            mc.setActionFormBeanClass(className);        }    }}/** * <p> A variant of the standard Digester <code>SetPropertyRule</code>.  If * the element being processed has a "key" attribute, then the value will be * used to call <code>setProperty(key,value)</code> on the object on top of * the stack, which will be assumed to be of type <code>ActionConfig</code>. * Otherwise, the standard <code>SetPropertyRule</code> behavior is invoked, * and the value will be used to set a bean property on the object on top of * the Digester stack. In that case, the element being processed is assumed to * have attributes "property" and "value". </p> */final class BaseConfigSetPropertyRule extends SetPropertyRule {    public BaseConfigSetPropertyRule() {        super("property", "value");    }    public void begin(Attributes attributes)        throws Exception {        if (attributes.getIndex("key") == -1) {            super.begin(attributes);            return;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -