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

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

?? contextloaderplugin.java

?? spring framework 2.5.4源代碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * Copyright 2002-2007 the original author or authors.
 *
 * 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.springframework.web.struts;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.context.ApplicationContextException;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.util.ClassUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.context.ConfigurableWebApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.springframework.web.context.support.XmlWebApplicationContext;

/**
 * Struts 1.1+ PlugIn that loads a Spring application context for the Struts
 * ActionServlet. This context will automatically refer to the root
 * WebApplicationContext (loaded by ContextLoaderListener/Servlet) as parent.
 *
 * <p>The default namespace of the WebApplicationContext is the name of the
 * Struts ActionServlet, suffixed with "-servlet" (e.g. "action-servlet").
 * The default location of the XmlWebApplicationContext configuration file
 * is therefore "/WEB-INF/action-servlet.xml".
 *
 * <pre>
 * &lt;plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/&gt;</pre>
 *
 * The location of the context configuration files can be customized
 * through the "contextConfigLocation" setting, analogous to the root
 * WebApplicationContext and FrameworkServlet contexts.
 *
 * <pre>
 * &lt;plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"&gt;
 *   &lt;set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml /WEB-INF/myContext.xml"/&gt;
 * &lt;/plug-in&gt;</pre>
 *
 * Beans defined in the ContextLoaderPlugIn context can be accessed
 * from conventional Struts Actions, via fetching the WebApplicationContext
 * reference from the ServletContext. ActionSupport and DispatchActionSupport
 * are pre-built convenience classes that provide easy access to the context.
 *
 * <p>It is normally preferable to access Spring's root WebApplicationContext
 * in such scenarios, though: A shared middle tier should be defined there
 * rather than in a ContextLoaderPlugin context, for access by any web component.
 * ActionSupport and DispatchActionSupport autodetect the root context too.
 *
 * <p>A special usage of this PlugIn is to define Struts Actions themselves
 * as beans, typically wiring them with middle tier components defined in the
 * root context. Such Actions will then be delegated to by proxy definitions
 * in the Struts configuration, using the DelegatingActionProxy class or
 * the DelegatingRequestProcessor.
 *
 * <p>Note that you can use a single ContextLoaderPlugIn for all Struts modules.
 * That context can in turn be loaded from multiple XML files, for example split
 * according to Struts modules. Alternatively, define one ContextLoaderPlugIn per
 * Struts module, specifying appropriate "contextConfigLocation" parameters.
 *
 * <p>Note: The idea of delegating to Spring-managed Struts Actions originated in
 * Don Brown's <a href="http://struts.sourceforge.net/struts-spring">Spring Struts Plugin</a>.
 * ContextLoaderPlugIn and DelegatingActionProxy constitute a clean-room
 * implementation of the same idea, essentially superseding the original plugin.
 * Many thanks to Don Brown and Matt Raible for the original work and for the
 * agreement to reimplement the idea in Spring proper!
 *
 * @author Juergen Hoeller
 * @since 1.0.1
 * @see #SERVLET_CONTEXT_PREFIX
 * @see ActionSupport
 * @see DispatchActionSupport
 * @see DelegatingActionProxy
 * @see DelegatingRequestProcessor
 * @see DelegatingTilesRequestProcessor
 * @see org.springframework.web.context.ContextLoaderListener
 * @see org.springframework.web.context.ContextLoaderServlet
 * @see org.springframework.web.servlet.FrameworkServlet
 */
public class ContextLoaderPlugIn implements PlugIn {

	/**
	 * Suffix for WebApplicationContext namespaces. If a Struts ActionServlet is
	 * given the name "action" in a context, the namespace used by this PlugIn will
	 * resolve to "action-servlet".
	 */
	public static final String DEFAULT_NAMESPACE_SUFFIX = "-servlet";

	/**
	 * Default context class for ContextLoaderPlugIn.
	 * @see org.springframework.web.context.support.XmlWebApplicationContext
	 */
	public static final Class DEFAULT_CONTEXT_CLASS = XmlWebApplicationContext.class;

	/**
	 * Prefix for the ServletContext attribute for the WebApplicationContext.
	 * The completion is the Struts module name.
	 */
	public static final String SERVLET_CONTEXT_PREFIX = ContextLoaderPlugIn.class.getName() + ".CONTEXT.";


	protected final Log logger = LogFactory.getLog(getClass());

	/** Custom WebApplicationContext class */
	private Class contextClass = DEFAULT_CONTEXT_CLASS;

	/** Namespace for this servlet */
	private String namespace;

	/** Explicit context config location */
	private String contextConfigLocation;

	/** The Struts ActionServlet that this PlugIn is registered with */
	private ActionServlet actionServlet;

	/** The Struts ModuleConfig that this PlugIn is registered with */
	private ModuleConfig moduleConfig;

	/** WebApplicationContext for the ActionServlet */
	private WebApplicationContext webApplicationContext;


	/**
	 * Set a custom context class by name. This class must be of type WebApplicationContext,
	 * when using the default ContextLoaderPlugIn implementation, the context class
	 * must also implement ConfigurableWebApplicationContext.
	 * @see #createWebApplicationContext
	 */
	public void setContextClassName(String contextClassName) throws ClassNotFoundException {
		this.contextClass = ClassUtils.forName(contextClassName);
	}

	/**
	 * Set a custom context class. This class must be of type WebApplicationContext,
	 * when using the default ContextLoaderPlugIn implementation, the context class
	 * must also implement ConfigurableWebApplicationContext.
	 * @see #createWebApplicationContext
	 */
	public void setContextClass(Class contextClass) {
		this.contextClass = contextClass;
	}

	/**
	 * Return the custom context class.
	 */
	public Class getContextClass() {
		return this.contextClass;
	}

	/**
	 * Set a custom namespace for the ActionServlet,
	 * to be used for building a default context config location.
	 */
	public void setNamespace(String namespace) {
		this.namespace = namespace;
	}

	/**
	 * Return the namespace for the ActionServlet, falling back to default scheme if
	 * no custom namespace was set: e.g. "test-servlet" for a servlet named "test".
	 */
	public String getNamespace() {
		if (this.namespace != null) {
			return this.namespace;
		}
		if (this.actionServlet != null) {
			return this.actionServlet.getServletName() + DEFAULT_NAMESPACE_SUFFIX;
		}
		return null;
	}

	/**
	 * Set the context config location explicitly, instead of relying on the default
	 * location built from the namespace. This location string can consist of
	 * multiple locations separated by any number of commas and spaces.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天狠狠| 亚洲色大成网站www久久九九| 51精品国自产在线| 国产欧美一区二区精品性| 欧美美女bb生活片| 欧美日韩三级视频| 欧美日韩成人一区| 91精品国产乱码| 日韩午夜中文字幕| 日韩午夜在线影院| 久久影音资源网| 欧美精彩视频一区二区三区| 国产欧美一区二区精品仙草咪| 欧美国产欧美综合| 国产精品不卡视频| 一区二区三区视频在线观看| 亚洲综合免费观看高清完整版 | 亚洲h精品动漫在线观看| 18成人在线视频| 一片黄亚洲嫩模| 亚洲午夜精品网| 日韩中文欧美在线| 极品美女销魂一区二区三区 | 色综合咪咪久久| 日本韩国欧美一区| 欧美色倩网站大全免费| 91麻豆精品国产91久久久久| 精品美女被调教视频大全网站| 国产亚洲一区二区三区四区| 综合欧美亚洲日本| 亚洲精品美腿丝袜| 日本不卡一二三区黄网| 国产精品一区二区三区乱码| 99综合影院在线| 欧美人伦禁忌dvd放荡欲情| 欧美大片在线观看| 国产精品久久久久三级| 亚洲国产精品久久不卡毛片| 免费成人在线观看| 国产成人福利片| 在线观看91视频| 亚洲精品一区二区三区影院| 中文字幕在线不卡| 石原莉奈一区二区三区在线观看| 国产在线播放一区二区三区| 91老师片黄在线观看| 欧美日韩视频在线第一区| 精品国产一区久久| 亚洲日本在线观看| 另类小说欧美激情| jlzzjlzz欧美大全| 在线电影一区二区三区| 日本一二三不卡| 亚洲超丰满肉感bbw| 国产精品77777竹菊影视小说| 欧美性三三影院| 久久婷婷久久一区二区三区| 亚洲综合另类小说| 国产成人在线免费观看| 欧美嫩在线观看| 中文字幕av一区二区三区高| 日韩av电影一区| 日韩女优电影在线观看| 亚洲日本电影在线| 久久99国内精品| 欧美日韩在线电影| 国产精品女上位| 蜜桃视频一区二区| 欧美午夜免费电影| 国产精品久久久久久久久搜平片 | 丁香婷婷综合色啪| 777欧美精品| 伊人色综合久久天天| 国产精品一二二区| 欧美一区二区三区成人| 亚洲一区视频在线| www.日韩av| 久久亚洲免费视频| 久久国产夜色精品鲁鲁99| 欧美在线观看视频在线| 17c精品麻豆一区二区免费| 极品美女销魂一区二区三区免费| 91精品在线免费| 亚洲国产一区二区三区青草影视| 国产成人精品1024| 久久久电影一区二区三区| 麻豆精品视频在线| 6080日韩午夜伦伦午夜伦| 亚洲午夜国产一区99re久久| 91在线视频官网| 中文乱码免费一区二区| 国产精品一二三区在线| 久久亚洲精精品中文字幕早川悠里| 美日韩一区二区| 欧美一级一区二区| 日韩av一区二区在线影视| 欧美区在线观看| 午夜影视日本亚洲欧洲精品| 欧美三级视频在线| 一区二区三区电影在线播| 91福利社在线观看| 一区二区三区四区不卡视频 | 国产日韩欧美制服另类| 国产乱对白刺激视频不卡 | 国产九色精品成人porny| 夜夜揉揉日日人人青青一国产精品| 色先锋aa成人| 亚洲乱码国产乱码精品精的特点 | 久久精品国产精品亚洲红杏 | 肉丝袜脚交视频一区二区| 日本精品视频一区二区三区| 一区二区三区不卡视频| 欧美亚洲尤物久久| 亚洲va欧美va国产va天堂影院| 欧美肥大bbwbbw高潮| 免费在线视频一区| 精品噜噜噜噜久久久久久久久试看 | 亚洲精品高清在线| 欧美做爰猛烈大尺度电影无法无天| 亚洲图片欧美一区| 91精品国产全国免费观看| 蜜桃视频免费观看一区| 久久亚洲一区二区三区明星换脸 | 宅男噜噜噜66一区二区66| 蜜臀av国产精品久久久久| 精品人在线二区三区| 美女尤物国产一区| 久久久一区二区| eeuss鲁片一区二区三区| 一区二区三区久久久| 欧美一区二区三区小说| 国产精品自在欧美一区| 日韩一区欧美一区| 欧美日韩国产小视频| 开心九九激情九九欧美日韩精美视频电影| 久久久亚洲精华液精华液精华液| 成人一道本在线| 亚洲一区二区三区自拍| 日韩欧美一级二级| 成人av综合在线| 午夜影院在线观看欧美| 久久久精品一品道一区| 色婷婷久久99综合精品jk白丝| 日本不卡高清视频| 亚洲国产经典视频| 欧美精品第一页| 成人午夜短视频| 日韩精品一级中文字幕精品视频免费观看 | 亚洲精品va在线观看| 91精品麻豆日日躁夜夜躁| 国产成人在线视频播放| 亚洲狠狠爱一区二区三区| 精品捆绑美女sm三区| 在线观看网站黄不卡| 色综合中文字幕| 国产午夜精品一区二区三区视频 | 精品国产露脸精彩对白| 99久久精品国产一区| 美腿丝袜亚洲色图| 亚洲免费观看高清完整| 精品久久国产老人久久综合| 色噜噜夜夜夜综合网| 国产毛片精品国产一区二区三区| 一区二区三区波多野结衣在线观看| 久久久久久久久久久久电影| 精品污污网站免费看| 成人激情综合网站| 免费观看成人鲁鲁鲁鲁鲁视频| 中文字幕亚洲区| 久久亚洲精品国产精品紫薇| 欧美精品久久99久久在免费线 | 色哦色哦哦色天天综合| 国产精品538一区二区在线| 五月婷婷另类国产| 亚洲四区在线观看| 国产亚洲欧美激情| 欧美一区二区在线观看| 在线观看网站黄不卡| 91影视在线播放| 久久99最新地址| 日韩高清在线不卡| 一区二区三区蜜桃网| 欧美激情在线看| xnxx国产精品| 日韩三级视频在线看| 欧美日本乱大交xxxxx| 在线免费不卡视频| av电影在线不卡| 成人丝袜18视频在线观看| 国产麻豆午夜三级精品| 久久99精品国产麻豆不卡| 美女视频黄久久| 日韩精品乱码免费| 污片在线观看一区二区| 一级日本不卡的影视| 国产精品白丝av| 精品午夜久久福利影院| 久久国产视频网| 日本怡春院一区二区| 日本aⅴ亚洲精品中文乱码|