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

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

?? actionservlet.java

?? structs源碼
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
        ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory();
        ModuleConfig config = factoryObject.createModuleConfig(prefix);

        // Configure the Digester instance we will use
        Digester digester = initConfigDigester();

        List urls = splitAndResolvePaths(paths);
        URL url;

        for (Iterator i = urls.iterator(); i.hasNext();) {
            url = (URL) i.next();
            digester.push(config);
            this.parseModuleConfigFile(digester, url);
        }

        getServletContext().setAttribute(Globals.MODULE_KEY
            + config.getPrefix(), config);

        return config;
    }

    /**
     * <p>Parses one module config file.</p>
     *
     * @param digester Digester instance that does the parsing
     * @param path     The path to the config file to parse.
     * @throws UnavailableException if file cannot be read or parsed
     * @since Struts 1.2
     * @deprecated use parseModuleConfigFile(Digester digester, URL url)
     *             instead
     */
    protected void parseModuleConfigFile(Digester digester, String path)
        throws UnavailableException {
        try {
            List paths = splitAndResolvePaths(path);

            if (paths.size() > 0) {
                // Get first path as was the old behavior
                URL url = (URL) paths.get(0);

                parseModuleConfigFile(digester, url);
            } else {
                throw new UnavailableException("Cannot locate path " + path);
            }
        } catch (UnavailableException ex) {
            throw ex;
        } catch (ServletException ex) {
            handleConfigException(path, ex);
        }
    }

    /**
     * <p>Parses one module config file.</p>
     *
     * @param digester Digester instance that does the parsing
     * @param url      The url to the config file to parse.
     * @throws UnavailableException if file cannot be read or parsed
     * @since Struts 1.3
     */
    protected void parseModuleConfigFile(Digester digester, URL url)
        throws UnavailableException {

        try {
            digester.parse(url);
        } catch (IOException e) {
            handleConfigException(url.toString(), e);
        } catch (SAXException e) {
            handleConfigException(url.toString(), e);
        }
    }

    /**
     * <p>Simplifies exception handling in the parseModuleConfigFile
     * method.<p>
     *
     * @param path The path to which the exception relates.
     * @param e    The exception to be wrapped and thrown.
     * @throws UnavailableException as a wrapper around Exception
     */
    private void handleConfigException(String path, Exception e)
        throws UnavailableException {
        String msg = internal.getMessage("configParse", path);

        log.error(msg, e);
        throw new UnavailableException(msg);
    }

    /**
     * <p>Handle errors related to creating an instance of the specified
     * class.</p>
     *
     * @param className The className that could not be instantiated.
     * @param e         The exception that was caught.
     * @throws ServletException to communicate the error.
     */
    private void handleCreationException(String className, Exception e)
        throws ServletException {
        String errorMessage =
            internal.getMessage("configExtends.creation", className);

        log.error(errorMessage, e);
        throw new UnavailableException(errorMessage);
    }

    /**
     * <p>General handling for exceptions caught while inheriting config
     * information.</p>
     *
     * @param configType The type of configuration object of configName.
     * @param configName The name of the config that could not be extended.
     * @param e          The exception that was caught.
     * @throws ServletException to communicate the error.
     */
    private void handleGeneralExtensionException(String configType,
        String configName, Exception e)
        throws ServletException {
        String errorMessage =
            internal.getMessage("configExtends", configType, configName);

        log.error(errorMessage, e);
        throw new UnavailableException(errorMessage);
    }

    /**
     * <p>Handle errors caused by required fields that were not
     * specified.</p>
     *
     * @param field      The name of the required field that was not found.
     * @param configType The type of configuration object of configName.
     * @param configName The name of the config that's missing the required
     *                   value.
     * @throws ServletException to communicate the error.
     */
    private void handleValueRequiredException(String field, String configType,
        String configName) throws ServletException {
        String errorMessage =
            internal.getMessage("configFieldRequired", field, configType,
                configName);

        log.error(errorMessage);
        throw new UnavailableException(errorMessage);
    }

    /**
     * <p>Initialize the plug ins 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 initModulePlugIns(ModuleConfig config)
        throws ServletException {
        if (log.isDebugEnabled()) {
            log.debug("Initializing module path '" + config.getPrefix()
                + "' plug ins");
        }

        PlugInConfig[] plugInConfigs = config.findPlugInConfigs();
        PlugIn[] plugIns = new PlugIn[plugInConfigs.length];

        getServletContext().setAttribute(Globals.PLUG_INS_KEY
            + config.getPrefix(), plugIns);

        for (int i = 0; i < plugIns.length; i++) {
            try {
                plugIns[i] =
                    (PlugIn) RequestUtils.applicationInstance(plugInConfigs[i]
                        .getClassName());
                BeanUtils.populate(plugIns[i], plugInConfigs[i].getProperties());

                // Pass the current plugIn config object to the PlugIn.
                // The property is set only if the plugin declares it.
                // This plugin config object is needed by Tiles
                try {
                    PropertyUtils.setProperty(plugIns[i],
                        "currentPlugInConfigObject", plugInConfigs[i]);
                } catch (Exception e) {
                    ;

                    // FIXME Whenever we fail silently, we must document a valid
                    // reason for doing so.  Why should we fail silently if a
                    // property can't be set on the plugin?

                    /**
                     * Between version 1.138-1.140 cedric made these changes.
                     * The exceptions are caught to deal with containers
                     * applying strict security. This was in response to bug
                     * #15736
                     *
                     * Recommend that we make the currentPlugInConfigObject part
                     * of the PlugIn Interface if we can, Rob
                     */
                }

                plugIns[i].init(this, config);
            } catch (ServletException e) {
                throw e;
            } catch (Exception e) {
                String errMsg =
                    internal.getMessage("plugIn.init",
                        plugInConfigs[i].getClassName());

                log(errMsg, e);
                throw new UnavailableException(errMsg);
            }
        }
    }

    /**
     * <p>Initialize the form beans for the specified module.</p>
     *
     * @param config ModuleConfig information for this module
     * @throws ServletException if initialization cannot be performed
     * @since Struts 1.3
     */
    protected void initModuleFormBeans(ModuleConfig config)
        throws ServletException {
        if (log.isDebugEnabled()) {
            log.debug("Initializing module path '" + config.getPrefix()
                + "' form beans");
        }

        // Process form bean extensions.
        FormBeanConfig[] formBeans = config.findFormBeanConfigs();

        for (int i = 0; i < formBeans.length; i++) {
            FormBeanConfig beanConfig = formBeans[i];

            processFormBeanExtension(beanConfig, config);
        }

        for (int i = 0; i < formBeans.length; i++) {
            FormBeanConfig formBean = formBeans[i];

            // Verify that required fields are all present for the form config
            if (formBean.getType() == null) {
                handleValueRequiredException("type", formBean.getName(),
                    "form bean");
            }

            // ... and the property configs
            FormPropertyConfig[] fpcs = formBean.findFormPropertyConfigs();

            for (int j = 0; j < fpcs.length; j++) {
                FormPropertyConfig property = fpcs[j];

                if (property.getType() == null) {
                    handleValueRequiredException("type", property.getName(),
                        "form property");
                }
            }

            // Force creation and registration of DynaActionFormClass instances
            // for all dynamic form beans
            if (formBean.getDynamic()) {
                formBean.getDynaActionFormClass();
            }
        }
    }

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

                beanConfig =
                    processFormBeanConfigClass(beanConfig, moduleConfig);

                beanConfig.processExtends(moduleConfig);
            }
        } catch (ServletException e) {
            throw e;
        } catch (Exception e) {
            handleGeneralExtensionException("FormBeanConfig",
                beanConfig.getName(), e);
        }
    }

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

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

        // Make sure that this bean is of the right class
        FormBeanConfig baseConfig = moduleConfig.findFormBeanConfig(ancestor);

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

        // Was our bean's class overridden already?
        if (beanConfig.getClass().equals(FormBeanConfig.class)) {
            // Ensure that our bean is using the correct class
            if (!baseConfig.getClass().equals(beanConfig.getClass())) {
                // Replace the bean with an instance of the correct class
                FormBeanConfig newBeanConfig = null;
                String baseConfigClassName = baseConfig.getClass().getName();

                try {
                    newBeanConfig =
                        (FormBeanConfig) RequestUtils.applicationInstance(baseConfigClassName);

                    // copy the values
                    BeanUtils.copyProperties(newBeanConfig, beanConfig);

                    FormPropertyConfig[] fpc =
                        beanConfig.findFormPropertyConfigs();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频观看一区| 精品久久久久99| 精品福利二区三区| 极品少妇xxxx精品少妇| 精品美女一区二区三区| 国产一区二区看久久| 国产欧美日韩在线观看| 国产成人av一区二区三区在线观看| 精品国产乱码久久久久久影片| 国产真实乱对白精彩久久| 久久久精品蜜桃| 99久久综合国产精品| 亚洲精品欧美在线| 91.成人天堂一区| 久久不见久久见免费视频1| 精品区一区二区| 成人网在线播放| 亚洲视频一区在线| 欧美人妇做爰xxxⅹ性高电影| 免费成人深夜小野草| 久久久精品中文字幕麻豆发布| 91在线精品秘密一区二区| 亚州成人在线电影| 久久中文娱乐网| 一本色道久久加勒比精品| 日韩高清一区二区| 国产精品网站一区| 欧美日韩在线电影| 国产精品911| 亚洲精选免费视频| 日韩亚洲国产中文字幕欧美| 成人小视频免费在线观看| 亚洲无线码一区二区三区| 久久亚洲综合色一区二区三区| 91在线视频在线| 激情欧美日韩一区二区| 亚洲精品免费电影| 欧美精品一区二区蜜臀亚洲| 在线一区二区三区四区| 韩国成人在线视频| 亚洲高清中文字幕| 中文字幕av一区二区三区免费看 | 欧美激情一区不卡| 欧美午夜精品一区二区三区 | 精品久久人人做人人爰| 色诱视频网站一区| 国产黑丝在线一区二区三区| 亚洲狠狠爱一区二区三区| 欧美国产综合色视频| 欧美一区午夜视频在线观看| 91视视频在线直接观看在线看网页在线看| 日本伊人午夜精品| 亚洲一区中文日韩| 国产精品国产三级国产普通话三级| 91精品欧美综合在线观看最新 | 亚洲女女做受ⅹxx高潮| 精品国产免费久久| 9191成人精品久久| 日本福利一区二区| 99精品在线免费| 国产成人精品免费一区二区| 久久国产欧美日韩精品| 性做久久久久久免费观看| 一区二区在线观看av| 国产精品久久久久久亚洲伦| 国产日韩欧美不卡| 国产精品沙发午睡系列990531| 欧美一区二区三区系列电影| 欧美综合久久久| 欧洲av一区二区嗯嗯嗯啊| 91最新地址在线播放| 91精品国产一区二区| 日本一区二区三区在线观看| 欧美电视剧在线观看完整版| 欧美久久一二区| 欧美性色黄大片手机版| 91日韩在线专区| 91视频精品在这里| 成人免费高清在线| yourporn久久国产精品| 不卡的av电影在线观看| 99热精品一区二区| 97精品视频在线观看自产线路二| 成年人国产精品| 91免费观看在线| 欧洲精品一区二区三区在线观看| 91久色porny | 亚洲成人综合在线| 亚洲成人动漫在线免费观看| 天堂一区二区在线| 麻豆91在线播放| 国产乱码精品一区二区三区忘忧草 | 日韩欧美国产小视频| 日韩欧美亚洲国产精品字幕久久久| 欧美福利一区二区| 日韩三级免费观看| www国产精品av| 中文字幕第一区第二区| 亚洲男女毛片无遮挡| 亚洲一区二区视频| 日本中文一区二区三区| 国产在线精品免费| 成人激情免费电影网址| 91香蕉视频污| 51精品国自产在线| 久久精品人人做| 樱桃国产成人精品视频| 全国精品久久少妇| 丰满少妇久久久久久久| 欧美综合天天夜夜久久| 欧美电影免费观看完整版| 亚洲国产精品成人综合| 一区二区三区**美女毛片| 久久机这里只有精品| 99精品久久久久久| 欧美一级片在线看| 国产精品动漫网站| 午夜精品在线视频一区| 国产精品亚洲一区二区三区妖精 | 成人精品小蝌蚪| 91国偷自产一区二区三区成为亚洲经典 | 99国产精品一区| 欧美二区三区91| 日本一区二区三区免费乱视频| 国产清纯白嫩初高生在线观看91 | 欧美色网一区二区| 欧美一区二区三区性视频| 中文字幕免费不卡| 亚洲成人第一页| 成人综合婷婷国产精品久久| 欧美另类z0zxhd电影| 久久九九全国免费| 性久久久久久久久久久久 | 欧美综合天天夜夜久久| 一区二区国产盗摄色噜噜| 日本美女一区二区| 成人免费的视频| 日韩欧美一区在线观看| 亚洲精品国产无天堂网2021| 国产最新精品免费| 欧美美女bb生活片| 亚洲人精品午夜| 国产成人在线视频免费播放| 69堂成人精品免费视频| 日韩毛片精品高清免费| 国产一区二区三区高清播放| 欧美日韩成人综合| 亚洲欧美另类综合偷拍| 国产精品一区二区在线观看不卡 | 黄一区二区三区| 欧美乱熟臀69xxxxxx| 亚洲日本一区二区三区| 国产在线视频精品一区| 欧美日韩一级大片网址| 亚洲欧洲成人自拍| 福利电影一区二区| 337p日本欧洲亚洲大胆精品| 偷拍一区二区三区| 91福利视频网站| 亚洲图片激情小说| 99视频在线精品| 国产精品久久久久久久久快鸭| 国产精品538一区二区在线| 日韩免费成人网| 麻豆精品在线播放| 日韩欧美亚洲国产精品字幕久久久| 人人狠狠综合久久亚洲| 欧美日韩国产精品成人| 午夜激情一区二区| 欧美日韩不卡视频| 日韩在线卡一卡二| 欧美一区二区私人影院日本| 视频在线在亚洲| 7777精品伊人久久久大香线蕉超级流畅 | 欧美大片顶级少妇| 久久av老司机精品网站导航| 欧美成人aa大片| 激情综合亚洲精品| www亚洲一区| 丁香婷婷综合网| 亚洲人成精品久久久久久| 色哟哟亚洲精品| 天堂va蜜桃一区二区三区漫画版| 欧美二区三区91| 国产美女精品一区二区三区| 久久久久久毛片| 91香蕉视频黄| 亚洲成av人综合在线观看| 欧美一区二区福利视频| 国产一区二区三区免费播放| 国产日产亚洲精品系列| fc2成人免费人成在线观看播放| 亚洲美女视频在线| 欧美三级资源在线| 久久99在线观看| 国产精品国产自产拍高清av| 欧美三级日韩三级| 美女视频一区在线观看| 欧美韩国日本综合| 欧美日韩一区成人|