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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? definitionsutil.java

?? struts的源代碼
?? JAVA
字號(hào):
/*
 * $Id: DefinitionsUtil.java 54929 2004-10-16 16:38:42Z germuska $ 
 *
 * Copyright 1999-2004 The Apache Software Foundation.
 * 
 * Licensed 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.tiles;

import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.taglib.tiles.ComponentConstants;

/**
 * Utilities class for definitions factory.
 * Also define userDebugLevel property (TODO to be moved from this class ?).
 * @deprecated Use {@link TilesUtil#createDefinitionsFactory(ServletContext, DefinitionsFactoryConfig)}
 */
public class DefinitionsUtil extends TilesUtil implements ComponentConstants {

    /** 
     * Commons Logging instance. 
     */
    protected static Log log = LogFactory.getLog(DefinitionsUtil.class);

    /** 
     * Global user defined debug level.
     * @deprecated This will be removed in a release after Struts 1.2. 
     */
    public static int userDebugLevel = 0;

    /** 
     * User Debug level. 
     * @deprecated This will be removed in a release after Struts 1.2. 
     */
    public static final int NO_DEBUG = 0;

    /** 
     * Name of init property carrying debug level. 
     */
    public static final String DEFINITIONS_CONFIG_USER_DEBUG_LEVEL =
        "definitions-debug";

    /** 
     * Name of init property carrying factory class name. 
     */
    public static final String DEFINITIONS_FACTORY_CLASSNAME =
        "definitions-factory-class";

    /** 
     * Constant name used to store factory in context. 
     */
    public static final String DEFINITIONS_FACTORY =
        "org.apache.struts.tiles.DEFINITIONS_FACTORY";

    /** 
     * Constant name used to store definition in jsp context.
     * Used to pass definition from a Struts action to servlet forward. 
     */
    public static final String ACTION_DEFINITION =
        "org.apache.struts.tiles.ACTION_DEFINITION";

    /**
     * Create Definition factory.
     * If a factory class name is provided, a factory of this class is created. Otherwise,
     * default factory is created.
     * @param classname Class name of the factory to create.
     * @param servletContext Servlet Context passed to newly created factory.
     * @param properties Map of name/property used to initialize factory configuration object.
     * @return newly created factory.
     * @throws DefinitionsFactoryException If an error occur while initializing factory
     * @deprecated Use createDefinitionsFactory(ServletContext servletContext, ServletConfig servletConfig)
     */
    public static DefinitionsFactory createDefinitionsFactory(
        ServletContext servletContext,
        Map properties,
        String classname)
        throws DefinitionsFactoryException {

        // Create config object
        DefinitionsFactoryConfig factoryConfig = new DefinitionsFactoryConfig();
        // populate it from map.
        try {
            factoryConfig.populate(properties);

        } catch (Exception ex) {
            throw new DefinitionsFactoryException(
                "Error - createDefinitionsFactory : Can't populate config object from properties map",
                ex);
        }

        // Add classname
        if (classname != null)
            factoryConfig.setFactoryClassname(classname);

        // Create factory using config object
        return createDefinitionsFactory(servletContext, factoryConfig);
    }

    /**
     * Create default Definition factory.
     * @param servletContext Servlet Context passed to newly created factory.
     * @param properties Map of name/property used to initialize factory configuration object.
     * @return newly created factory of type ConfigurableDefinitionsFactory.
     * @throws DefinitionsFactoryException If an error occur while initializing factory
     */
    public static DefinitionsFactory createDefinitionsFactory(
        ServletContext servletContext,
        Map properties)
        throws DefinitionsFactoryException {

        return createDefinitionsFactory(servletContext, properties, null);
    }

    /**
     * Create Definition factory.
     * Create configuration object from servlet web.xml file, then create
     * ConfigurableDefinitionsFactory and initialized it with object.
     * <p>
     * Convenience method. Calls createDefinitionsFactory(ServletContext servletContext, DefinitionsFactoryConfig factoryConfig)
     *
     * @param servletContext Servlet Context passed to newly created factory.
     * @param servletConfig Servlet config containing parameters to be passed to factory configuration object.
     * @return newly created factory of type ConfigurableDefinitionsFactory.
     * @throws DefinitionsFactoryException If an error occur while initializing factory
     */
    public static DefinitionsFactory createDefinitionsFactory(
        ServletContext servletContext,
        ServletConfig servletConfig)
        throws DefinitionsFactoryException {

        DefinitionsFactoryConfig factoryConfig = readFactoryConfig(servletConfig);

        return createDefinitionsFactory(servletContext, factoryConfig);
    }

    /**
     * Create Definition factory.
     * Create configuration object from servlet web.xml file, then create
     * ConfigurableDefinitionsFactory and initialized it with object.
     * <p>
     * If checkIfExist is true, start by checking if factory already exist. If yes,
     * return it. If no, create a new one.
     * <p>
     * If checkIfExist is false, factory is always created.
     * <p>
     * Convenience method. Calls createDefinitionsFactory(ServletContext servletContext, DefinitionsFactoryConfig factoryConfig)
     *
     * @param servletContext Servlet Context passed to newly created factory.
     * @param servletConfig Servlet config containing parameters to be passed to factory configuration object.
     * @param checkIfExist Check if factory already exist. If true and factory exist, return it.
     * If true and factory doesn't exist, create it. If false, create it in all cases.
     * @return newly created factory of type ConfigurableDefinitionsFactory.
     * @throws DefinitionsFactoryException If an error occur while initializing factory
     */
    public static DefinitionsFactory createDefinitionsFactory(
        ServletContext servletContext,
        ServletConfig servletConfig,
        boolean checkIfExist)
        throws DefinitionsFactoryException {

        if (checkIfExist) {
            // Check if already exist in context
            DefinitionsFactory factory = getDefinitionsFactory(servletContext);
            if (factory != null)
                return factory;
        }

        return createDefinitionsFactory(servletContext, servletConfig);
    }

    /**
     * Get definition factory from appropriate servlet context.
     * @return Definitions factory or null if not found.
     * @deprecated Use {@link TilesUtil#getDefinitionsFactory(ServletRequest, ServletContext)}
     * @since 20020708
     */
    public static DefinitionsFactory getDefinitionsFactory(ServletContext servletContext) {
        return (DefinitionsFactory) servletContext.getAttribute(DEFINITIONS_FACTORY);
    }

    /**
     * Get Definition stored in jsp context by an action.
     * @return ComponentDefinition or null if not found.
     */
    public static ComponentDefinition getActionDefinition(ServletRequest request) {
        return (ComponentDefinition) request.getAttribute(ACTION_DEFINITION);
    }

    /**
     * Store definition in jsp context.
     * Mainly used by Struts to pass a definition defined in an Action to the forward.
     */
    public static void setActionDefinition(
        ServletRequest request,
        ComponentDefinition definition) {

        request.setAttribute(ACTION_DEFINITION, definition);
    }

    /**
     * Remove Definition stored in jsp context.
     * Mainly used by Struts to pass a definition defined in an Action to the forward.
     */
    public static void removeActionDefinition(
        ServletRequest request,
        ComponentDefinition definition) {

        request.removeAttribute(ACTION_DEFINITION);
    }

    /**
     * Populate Definition Factory Config from web.xml properties.
     * @param factoryConfig Definition Factory Config to populate.
     * @param servletConfig Current servlet config containing web.xml properties.
     * @exception IllegalAccessException if the caller does not have
     *  access to the property accessor method
     * @exception java.lang.reflect.InvocationTargetException if the property accessor method
     *  throws an exception
     * @see org.apache.commons.beanutils.BeanUtils
     * @since tiles 20020708
     */
    public static void populateDefinitionsFactoryConfig(
        DefinitionsFactoryConfig factoryConfig,
        ServletConfig servletConfig)
        throws IllegalAccessException, InvocationTargetException {

        Map properties = new DefinitionsUtil.ServletPropertiesMap(servletConfig);
        factoryConfig.populate(properties);
    }

    /**
     * Create FactoryConfig and initialize it from web.xml.
     *
     * @param servletConfig ServletConfig for the module with which
     *  this plug in is associated
     * @exception DefinitionsFactoryException if this <code>PlugIn</code> cannot
     *  be successfully initialized
     */
    protected static DefinitionsFactoryConfig readFactoryConfig(ServletConfig servletConfig)
        throws DefinitionsFactoryException {

        // Create tiles definitions config object
        DefinitionsFactoryConfig factoryConfig = new DefinitionsFactoryConfig();

        // Get init parameters from web.xml files
        try {
            DefinitionsUtil.populateDefinitionsFactoryConfig(
                factoryConfig,
                servletConfig);

        } catch (Exception ex) {
            ex.printStackTrace();
            throw new DefinitionsFactoryException(
                "Can't populate DefinitionsFactoryConfig class from 'web.xml'.",
                ex);
        }

        return factoryConfig;
    }

    /**
     * Inner class.
     * Wrapper for ServletContext init parameters.
     * Object of this class is an hashmap containing parameters and values
     * defined in the servlet config file (web.xml).
     */
    static class ServletPropertiesMap extends HashMap {
        /**
         * Constructor.
         */
        ServletPropertiesMap(ServletConfig config) {
            // This implementation is very simple.
            // It is possible to avoid creation of a new structure, but this need
            // imply writing all Map interface.
            Enumeration e = config.getInitParameterNames();
            while (e.hasMoreElements()) {
                String key = (String) e.nextElement();
                put(key, config.getInitParameter(key));
            }
        }
    } // end inner class

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲不卡av一区二区三区| 成人国产亚洲欧美成人综合网| 欧美bbbbb| 国产一区二区在线观看免费| 国产成人啪免费观看软件| 成人爽a毛片一区二区免费| 99国内精品久久| 正在播放亚洲一区| 精品国产伦一区二区三区观看体验| 国产亚洲欧美中文| 亚洲另类在线一区| 免费成人在线网站| 国产sm精品调教视频网站| 一本色道**综合亚洲精品蜜桃冫| 欧美顶级少妇做爰| 欧美激情一区二区| 亚洲国产视频一区二区| 国产麻豆精品95视频| 一本大道久久a久久精品综合| 欧美美女一区二区三区| 久久久久久久久久久久久久久99| 亚洲免费av网站| 另类小说图片综合网| 成人天堂资源www在线| 在线成人免费观看| 中文在线一区二区 | 色呦呦国产精品| 欧美一区二区精美| 国产精品久久久久影院老司| 天堂成人免费av电影一区| 成人涩涩免费视频| 91精品国产色综合久久不卡电影 | 日韩你懂的电影在线观看| 久久久久久电影| 亚洲天堂中文字幕| 久久激五月天综合精品| 色婷婷综合久久久久中文| 26uuu亚洲综合色欧美| 一区二区在线电影| 国内精品自线一区二区三区视频| 色哟哟精品一区| 欧美精品一区二区三区在线播放| 一区二区三区不卡视频在线观看| 狠狠色狠狠色综合| 欧美日本高清视频在线观看| 国产日产欧美一区| 男女男精品网站| 91福利小视频| 国产精品久久三| 奇米影视一区二区三区小说| 欧美亚洲综合网| 亚洲国产精品99久久久久久久久 | 欧美三级视频在线播放| 久久精品夜色噜噜亚洲aⅴ| 日本在线不卡视频一二三区| 色综合av在线| 综合精品久久久| 岛国一区二区在线观看| 久久综合一区二区| 日韩国产精品大片| 日本aⅴ免费视频一区二区三区| 成人欧美一区二区三区白人 | 日韩一区二区中文字幕| 亚洲黄色在线视频| 成人黄色软件下载| 国产免费成人在线视频| 精品一区二区av| 日韩一级二级三级| 香蕉影视欧美成人| 欧美色精品在线视频| 亚洲精品国产无套在线观| 成人深夜福利app| 欧美国产丝袜视频| 国产成人在线视频免费播放| 香港成人在线视频| 国产拍欧美日韩视频二区| 91精品久久久久久久99蜜桃| 一区二区三区日韩在线观看| 99国产一区二区三精品乱码| 国产精品久久看| 日本vs亚洲vs韩国一区三区二区| 国产91色综合久久免费分享| 欧美一区二区三区婷婷月色| 午夜精品aaa| 欧美日韩视频一区二区| 亚洲综合一区二区三区| 欧美中文字幕一区| 一区二区在线观看不卡| 在线日韩一区二区| 午夜电影久久久| 欧美日韩亚洲综合| 天堂久久久久va久久久久| 欧美一区二区视频观看视频| 欧美aⅴ一区二区三区视频| 欧美一区二区女人| 国产又黄又大久久| 久久久久久久性| 成人av电影在线观看| 国产精品欧美一级免费| av电影在线观看一区| 日韩伦理免费电影| 欧美在线观看你懂的| 日韩av高清在线观看| 日韩女优电影在线观看| 国产成人午夜精品5599 | 国产精品538一区二区在线| 国产精品无码永久免费888| av不卡在线播放| 亚洲一区精品在线| 51精品久久久久久久蜜臀| 精品在线播放午夜| 国产精品视频看| 91国内精品野花午夜精品 | 欧美一区二区二区| 国产精品一区二区不卡| 综合分类小说区另类春色亚洲小说欧美| 色哟哟一区二区三区| 奇米精品一区二区三区在线观看一| 欧美大片拔萝卜| 99久久免费国产| 性做久久久久久免费观看欧美| 日韩免费高清av| 成人在线视频首页| 亚洲一区二区三区免费视频| 日韩三级.com| 国内精品写真在线观看| 成人免费视频在线观看| 制服丝袜亚洲播放| 成人黄色小视频| 日韩成人一级大片| 国产精品久久久久久户外露出 | 亚洲色图.com| 欧美成人伊人久久综合网| 99re成人精品视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产区在线观看成人精品 | 日韩专区在线视频| 国产精品久久久久久妇女6080| 欧美日韩夫妻久久| 成人av中文字幕| 久久狠狠亚洲综合| 亚洲欧美电影一区二区| xnxx国产精品| 欧美亚洲禁片免费| 粉嫩一区二区三区在线看| 偷窥少妇高潮呻吟av久久免费| 国产亚洲制服色| 欧美日本一区二区在线观看| 国产精品亚洲专一区二区三区| 一区二区三区在线视频播放| 久久久久久久电影| 3atv一区二区三区| 色先锋资源久久综合| 国产在线播放一区| 免费观看日韩电影| 一区二区三区精品视频| 久久精品视频免费观看| 欧美一区二区三区视频在线观看| 99re热这里只有精品视频| 国产精品综合一区二区三区| 日韩av一区二区在线影视| 尤物在线观看一区| 国产精品国产成人国产三级 | 日韩激情av在线| 亚洲免费观看高清完整版在线观看| 久久久不卡影院| 日韩欧美高清一区| 欧美日本免费一区二区三区| 91视频在线观看免费| 国产91丝袜在线18| 国产在线视视频有精品| 日韩国产精品久久久久久亚洲| 亚洲综合小说图片| 欧美一区二区黄| 在线播放视频一区| 欧美日韩国产另类一区| 欧美性猛交xxxx乱大交退制版| 色综合久久88色综合天天免费| 97久久超碰国产精品| 成人app软件下载大全免费| 免费久久99精品国产| 日韩精品午夜视频| 五月天亚洲精品| 五月天欧美精品| 视频在线观看一区| 日本91福利区| 亚洲成人av电影在线| 天堂久久一区二区三区| 天堂av在线一区| 日本麻豆一区二区三区视频| 日精品一区二区| 老色鬼精品视频在线观看播放| 奇米精品一区二区三区在线观看一| 日本不卡一区二区三区 | 欧美mv日韩mv| 日韩女优av电影在线观看| 日韩欧美一区二区在线视频| 日韩一区二区电影网| 日韩欧美一区电影| 欧美精品一区二区三区在线|