亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? actionservlet.java

?? structs源碼
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
            // Verify that required fields are all present for the forward
            // configs
            ForwardConfig[] forwards = actionConfig.findForwardConfigs();

            for (int j = 0; j < forwards.length; j++) {
                ForwardConfig forward = forwards[j];

                if (forward.getPath() == null) {
                    handleValueRequiredException("path", forward.getName(),
                        "action forward");
                }
            }

            // ... and the exception configs
            ExceptionConfig[] exceptions = actionConfig.findExceptionConfigs();

            for (int j = 0; j < exceptions.length; j++) {
                ExceptionConfig exception = exceptions[j];

                if (exception.getKey() == null) {
                    handleValueRequiredException("key", exception.getType(),
                        "action exception config");
                }
            }
        }
    }

    /**
     * <p>Extend the action's configuration as necessary.</p>
     *
     * @param actionConfig the configuration to process.
     * @param moduleConfig the module configuration for this module.
     * @throws ServletException if initialization cannot be performed.
     */
    protected void processActionConfigExtension(ActionConfig actionConfig,
        ModuleConfig moduleConfig)
        throws ServletException {
        try {
            if (!actionConfig.isExtensionProcessed()) {
                if (log.isDebugEnabled()) {
                    log.debug("Processing extensions for '"
                        + actionConfig.getPath() + "'");
                }

                actionConfig =
                    processActionConfigClass(actionConfig, moduleConfig);

                actionConfig.processExtends(moduleConfig);
            }

            // Process forwards extensions.
            ForwardConfig[] forwards = actionConfig.findForwardConfigs();
            for (int i = 0; i < forwards.length; i++) {
                ForwardConfig forward = forwards[i];
                processForwardExtension(forward, moduleConfig, actionConfig);
            }

            // Process exception extensions.
            ExceptionConfig[] exceptions = actionConfig.findExceptionConfigs();
            for (int i = 0; i < exceptions.length; i++) {
                ExceptionConfig exception = exceptions[i];
                processExceptionExtension(exception, moduleConfig,
                    actionConfig);
            }
        } catch (ServletException e) {
            throw e;
        } catch (Exception e) {
            handleGeneralExtensionException("Action", actionConfig.getPath(), e);
        }
    }

    /**
     * <p>Checks if the current actionConfig is using the correct class based
     * on the class of its ancestor ActionConfig.</p>
     *
     * @param actionConfig The action config to check.
     * @param moduleConfig The config for the current module.
     * @return The config object using the correct class as determined by the
     *         config's ancestor and its own overridden value.
     * @throws ServletException if an instance of the action config class
     *                          cannot be created.
     */
    protected ActionConfig processActionConfigClass(ActionConfig actionConfig,
        ModuleConfig moduleConfig)
        throws ServletException {
        String ancestor = actionConfig.getExtends();

        if (ancestor == null) {
            // Nothing to do, then
            return actionConfig;
        }

        // Make sure that this config is of the right class
        ActionConfig baseConfig = moduleConfig.findActionConfig(ancestor);

        if (baseConfig == null) {
            throw new UnavailableException("Unable to find "
                + "action config for '" + ancestor + "' to extend.");
        }

        // Was our actionConfig's class overridden already?
        if (actionConfig.getClass().equals(ActionMapping.class)) {
            // Ensure that our config is using the correct class
            if (!baseConfig.getClass().equals(actionConfig.getClass())) {
                // Replace the config with an instance of the correct class
                ActionConfig newActionConfig = null;
                String baseConfigClassName = baseConfig.getClass().getName();

                try {
                    newActionConfig =
                        (ActionConfig) RequestUtils.applicationInstance(baseConfigClassName);

                    // copy the values
                    BeanUtils.copyProperties(newActionConfig, actionConfig);

                    // copy the forward and exception configs, too
                    ForwardConfig[] forwards =
                        actionConfig.findForwardConfigs();

                    for (int i = 0; i < forwards.length; i++) {
                        newActionConfig.addForwardConfig(forwards[i]);
                    }

                    ExceptionConfig[] exceptions =
                        actionConfig.findExceptionConfigs();

                    for (int i = 0; i < exceptions.length; i++) {
                        newActionConfig.addExceptionConfig(exceptions[i]);
                    }
                } catch (Exception e) {
                    handleCreationException(baseConfigClassName, e);
                }

                // replace actionConfig with newActionConfig
                moduleConfig.removeActionConfig(actionConfig);
                moduleConfig.addActionConfig(newActionConfig);
                actionConfig = newActionConfig;
            }
        }

        return actionConfig;
    }

    /**
     * <p>Initialize the application <code>MessageResources</code> for the
     * specified module.</p>
     *
     * @param config ModuleConfig information for this module
     * @throws ServletException if initialization cannot be performed
     * @since Struts 1.1
     */
    protected void initModuleMessageResources(ModuleConfig config)
        throws ServletException {
        MessageResourcesConfig[] mrcs = config.findMessageResourcesConfigs();

        for (int i = 0; i < mrcs.length; i++) {
            if ((mrcs[i].getFactory() == null)
                || (mrcs[i].getParameter() == null)) {
                continue;
            }

            if (log.isDebugEnabled()) {
                log.debug("Initializing module path '" + config.getPrefix()
                    + "' message resources from '" + mrcs[i].getParameter()
                    + "'");
            }

            String factory = mrcs[i].getFactory();

            MessageResourcesFactory.setFactoryClass(factory);

            MessageResourcesFactory factoryObject =
                MessageResourcesFactory.createFactory();

            factoryObject.setConfig(mrcs[i]);

            MessageResources resources =
                factoryObject.createResources(mrcs[i].getParameter());

            resources.setReturnNull(mrcs[i].getNull());
            resources.setEscape(mrcs[i].isEscape());
            getServletContext().setAttribute(mrcs[i].getKey()
                + config.getPrefix(), resources);
        }
    }

    /**
     * <p>Create (if needed) and return a new <code>Digester</code> instance
     * that has been initialized to process Struts module configuration files
     * and configure a corresponding <code>ModuleConfig</code> object (which
     * must be pushed on to the evaluation stack before parsing begins).</p>
     *
     * @return A new configured <code>Digester</code> instance.
     * @throws ServletException if a Digester cannot be configured
     * @since Struts 1.1
     */
    protected Digester initConfigDigester()
        throws ServletException {
        // :FIXME: Where can ServletException be thrown?
        // Do we have an existing instance?
        if (configDigester != null) {
            return (configDigester);
        }

        // Create a new Digester instance with standard capabilities
        configDigester = new Digester();
        configDigester.setNamespaceAware(true);
        configDigester.setValidating(this.isValidating());
        configDigester.setUseContextClassLoader(true);
        configDigester.addRuleSet(new ConfigRuleSet());

        for (int i = 0; i < registrations.length; i += 2) {
            URL url = this.getClass().getResource(registrations[i + 1]);

            if (url != null) {
                configDigester.register(registrations[i], url.toString());
            }
        }

        this.addRuleSets();

        // Return the completely configured Digester instance
        return (configDigester);
    }

    /**
     * <p>Add any custom RuleSet instances to configDigester that have been
     * specified in the <code>rulesets</code> init parameter.</p>
     *
     * @throws ServletException if an error occurs
     */
    private void addRuleSets()
        throws ServletException {
        String rulesets = getServletConfig().getInitParameter("rulesets");

        if (rulesets == null) {
            rulesets = "";
        }

        rulesets = rulesets.trim();

        String ruleset;

        while (rulesets.length() > 0) {
            int comma = rulesets.indexOf(",");

            if (comma < 0) {
                ruleset = rulesets.trim();
                rulesets = "";
            } else {
                ruleset = rulesets.substring(0, comma).trim();
                rulesets = rulesets.substring(comma + 1).trim();
            }

            if (log.isDebugEnabled()) {
                log.debug("Configuring custom Digester Ruleset of type "
                    + ruleset);
            }

            try {
                RuleSet instance =
                    (RuleSet) RequestUtils.applicationInstance(ruleset);

                this.configDigester.addRuleSet(instance);
            } catch (Exception e) {
                log.error("Exception configuring custom Digester RuleSet", e);
                throw new ServletException(e);
            }
        }
    }

    /**
     * <p>Check the status of the <code>validating</code> initialization
     * parameter.</p>
     *
     * @return true if the module Digester should validate.
     */
    private boolean isValidating() {
        boolean validating = true;
        String value = getServletConfig().getInitParameter("validating");

        if ("false".equalsIgnoreCase(value) || "no".equalsIgnoreCase(value)
            || "n".equalsIgnoreCase(value) || "0".equalsIgnoreCase(value)) {
            validating = false;
        }

        return validating;
    }

    /**
     * <p>Initialize our internal MessageResources bundle.</p>
     *
     * @throws ServletException     if we cannot initialize these resources
     * @throws UnavailableException if we cannot load  resources
     */
    protected void initInternal()
        throws ServletException {
        try {
            internal = MessageResources.getMessageResources(internalName);
        } catch (MissingResourceException e) {
            log.error("Cannot load internal resources from '" + internalName
                + "'", e);
            throw new UnavailableException(
                "Cannot load internal resources from '" + internalName + "'");
        }
    }

    /**
     * <p>Parse the configuration documents specified by the
     * <code>chainConfig</code> init-param to configure the default {@link
     * org.apache.commons.chain.Catalog} that is registered in the {@link
     * CatalogFactory} instance for this application.</p>
     *
     * @throws ServletException if an error occurs.
     */
    protected void initChain()
        throws ServletException {
        // Parse the configuration file specified by path or resource
        try {
            String value;

            value = getServletConfig().getInitParameter("chainConfig");

            if (value != null) {
                chainConfig = value;
            }

            ConfigParser parser = new ConfigParser();
            List urls = splitAndResolvePaths(chainConfig);
            URL resource;

            for (Iterator i = urls.iterator(); i.hasNext();) {
                resource = (URL) i.next();
                log.info("Loading chain catalog from " + resource);
                parser.parse(resource);
      

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美综合天天夜夜久久| 加勒比av一区二区| 在线亚洲免费视频| 亚洲制服丝袜av| 欧美日韩免费不卡视频一区二区三区 | 欧美一三区三区四区免费在线看 | 国产69精品久久777的优势| 日本一区二区动态图| www.爱久久.com| 国产精品不卡一区二区三区| 色诱视频网站一区| 日日夜夜精品视频天天综合网| 制服丝袜av成人在线看| 国产乱淫av一区二区三区 | 不卡av电影在线播放| 亚洲激情自拍视频| 91精品国产综合久久久久久漫画 | 国产成人亚洲精品青草天美| 国产精品久久久久久久久免费樱桃| 一本大道久久a久久精二百| 五月婷婷久久丁香| 亚洲免费在线看| 欧美一区二区日韩一区二区| 国产在线精品一区在线观看麻豆| 亚洲欧美在线视频观看| 欧美日本一区二区三区四区| 国产一区三区三区| 一区二区三区四区在线播放| 日韩欧美国产小视频| 91小视频免费观看| 麻豆精品久久精品色综合| 综合久久一区二区三区| 欧美一区二区三区在线视频| av毛片久久久久**hd| 秋霞国产午夜精品免费视频| 18欧美亚洲精品| 日韩精品一区二区三区视频| 色久优优欧美色久优优| 国产在线精品不卡| 天堂精品中文字幕在线| 国产精品成人在线观看| 欧美成人video| 欧美亚洲日本国产| 成人福利视频在线| 国内外成人在线视频| 亚洲成人久久影院| 自拍偷自拍亚洲精品播放| 精品国产伦理网| 欧美精品久久天天躁| 色噜噜狠狠一区二区三区果冻| 国产呦精品一区二区三区网站| 亚洲h动漫在线| 亚洲乱码一区二区三区在线观看| 国产偷国产偷精品高清尤物| 日韩三级免费观看| 欧美美女网站色| 色婷婷综合久久久中文字幕| 国产91精品在线观看| 久久国产人妖系列| 日韩av一级电影| 午夜精品久久久久久久久| 一区二区免费在线播放| 自拍视频在线观看一区二区| 久久精品欧美日韩| 欧美mv日韩mv国产网站app| 欧美老人xxxx18| 欧美日韩综合不卡| 欧美日韩性生活| 在线视频一区二区免费| 一本色道**综合亚洲精品蜜桃冫| a亚洲天堂av| aaa国产一区| 99re热这里只有精品免费视频| 从欧美一区二区三区| 国产成人午夜99999| 国产成人自拍高清视频在线免费播放| 久久狠狠亚洲综合| 精品一区二区免费视频| 激情都市一区二区| 国产一区二区三区四区五区美女| 国内精品国产三级国产a久久| 免费三级欧美电影| 精品一区二区久久| 国产超碰在线一区| 日韩精品一区二区三区四区| 欧美大片在线观看| 国产三级一区二区| 亚洲欧美一区二区视频| 亚洲码国产岛国毛片在线| 亚洲精品ww久久久久久p站| 亚洲高清不卡在线| 秋霞午夜鲁丝一区二区老狼| 国内成+人亚洲+欧美+综合在线| 国产精品一区2区| 97国产一区二区| 欧美亚洲图片小说| 日韩免费性生活视频播放| 久久久不卡网国产精品二区| 中文字幕一区免费在线观看| 亚洲一区二区欧美激情| 免费视频一区二区| 懂色av中文一区二区三区| 99精品国产热久久91蜜凸| 欧美少妇一区二区| 欧美一区二区三区免费观看视频 | 日本国产一区二区| 欧美精品vⅰdeose4hd| 欧美精品一区二区三区蜜桃视频| 日本一区二区三区高清不卡| 亚洲日本一区二区| 蜜桃传媒麻豆第一区在线观看| 国产盗摄一区二区三区| 色8久久精品久久久久久蜜| 制服.丝袜.亚洲.中文.综合| 久久九九99视频| 夜夜夜精品看看| 国产一区二三区| 精品视频一区 二区 三区| 2024国产精品视频| 亚洲国产毛片aaaaa无费看| 国产在线精品视频| 欧美日韩中文国产| 欧美国产欧美综合| 亚洲bt欧美bt精品| 成人黄色综合网站| 91精品国产91久久久久久一区二区| 亚洲国产精品99久久久久久久久| 午夜影院久久久| av色综合久久天堂av综合| 欧美成人女星排行榜| 亚洲精品视频免费看| 国产福利91精品| 91精品国产91久久综合桃花| 亚洲三级小视频| 国产成人亚洲综合色影视| 91.com在线观看| 亚洲综合精品自拍| 成人av免费在线观看| 久久综合色综合88| 日韩国产精品久久久久久亚洲| 91网站黄www| 欧美国产一区视频在线观看| 免费高清在线视频一区·| 在线免费精品视频| 国产精品九色蝌蚪自拍| 久久精品国产一区二区三| 欧美色精品在线视频| 亚洲图片另类小说| 成人av网站在线观看免费| 久久女同性恋中文字幕| 美脚の诱脚舐め脚责91| 欧美日韩电影一区| 亚洲在线成人精品| 一本色道久久综合亚洲91| 国产精品不卡一区二区三区| 国产精品1024| 国产欧美综合在线观看第十页| 蜜桃视频一区二区三区| 91精品国产欧美日韩| 午夜电影网亚洲视频| 欧美最猛性xxxxx直播| 一区二区三区免费在线观看| 91麻豆免费看片| 亚洲激情校园春色| 91年精品国产| 亚洲愉拍自拍另类高清精品| 欧美午夜精品理论片a级按摩| 亚洲激情五月婷婷| 欧美三级在线播放| 亚洲第一激情av| 欧美久久久一区| 免费在线欧美视频| 日韩欧美亚洲国产精品字幕久久久| 丝瓜av网站精品一区二区| 91麻豆精品91久久久久久清纯| 日韩中文字幕av电影| 日韩一区二区影院| 国产一区二区三区在线观看免费视频 | 精品一区二区三区不卡 | 国产精品美女久久久久aⅴ国产馆| 国产精选一区二区三区| 国产无人区一区二区三区| 成人午夜在线播放| 亚洲欧美福利一区二区| 欧美在线视频不卡| 午夜激情一区二区| 精品福利av导航| 成人午夜免费视频| 依依成人综合视频| 欧美日韩免费电影| 精久久久久久久久久久| 国产精品人成在线观看免费 | 亚洲激情男女视频| 在线播放国产精品二区一二区四区| 久久精品国产在热久久| 国产精品三级久久久久三级| 欧美主播一区二区三区| 蜜桃视频免费观看一区| 国产精品欧美一区二区三区| 欧洲视频一区二区|