refactored to pass along original ServletContext (for WebLogic and Resin JSP compatibility; SPR-6606)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2752 50f2f4bb-b051-0410-bef5-90022cba6387
This commit is contained in:
parent
eadbf7a057
commit
6462b4d6ed
|
|
@ -17,8 +17,9 @@
|
||||||
package org.springframework.web.servlet.view.tiles2;
|
package org.springframework.web.servlet.view.tiles2;
|
||||||
|
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import javax.servlet.ServletConfig;
|
|
||||||
import javax.servlet.ServletContext;
|
import javax.servlet.ServletContext;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
|
@ -36,7 +37,6 @@ import org.apache.tiles.servlet.context.ServletUtil;
|
||||||
import org.apache.tiles.servlet.context.wildcard.WildcardServletTilesApplicationContextFactory;
|
import org.apache.tiles.servlet.context.wildcard.WildcardServletTilesApplicationContextFactory;
|
||||||
import org.apache.tiles.startup.BasicTilesInitializer;
|
import org.apache.tiles.startup.BasicTilesInitializer;
|
||||||
import org.apache.tiles.startup.TilesInitializer;
|
import org.apache.tiles.startup.TilesInitializer;
|
||||||
import org.apache.tiles.web.util.ServletContextAdapter;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.DisposableBean;
|
import org.springframework.beans.factory.DisposableBean;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
|
|
@ -199,8 +199,8 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
|
||||||
* @see #createTilesInitializer()
|
* @see #createTilesInitializer()
|
||||||
*/
|
*/
|
||||||
public void afterPropertiesSet() throws TilesException {
|
public void afterPropertiesSet() throws TilesException {
|
||||||
ServletContextAdapter adaptedContext = new ServletContextAdapter(new DelegatingServletConfig());
|
createTilesInitializer().initialize(
|
||||||
createTilesInitializer().initialize(new ServletTilesApplicationContext(adaptedContext));
|
new PropertyExposingServletTilesApplicationContext(this.servletContext, this.tilesPropertyMap));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -221,27 +221,28 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
private static class PropertyExposingServletTilesApplicationContext extends ServletTilesApplicationContext {
|
||||||
* Internal implementation of the ServletConfig interface, to be passed
|
|
||||||
* to the wrapped servlet. Delegates to ServletWrappingController fields
|
|
||||||
* and methods to provide init parameters and other environment info.
|
|
||||||
*/
|
|
||||||
private class DelegatingServletConfig implements ServletConfig {
|
|
||||||
|
|
||||||
public String getServletName() {
|
private final Map<String, String> mergedInitParams;
|
||||||
return "TilesConfigurer";
|
|
||||||
|
public PropertyExposingServletTilesApplicationContext(ServletContext servletContext, Properties properties) {
|
||||||
|
super(servletContext);
|
||||||
|
this.mergedInitParams = new LinkedHashMap<String, String>();
|
||||||
|
Enumeration initParamNames = servletContext.getInitParameterNames();
|
||||||
|
while (initParamNames.hasMoreElements()) {
|
||||||
|
String initParamName = (String) initParamNames.nextElement();
|
||||||
|
this.mergedInitParams.put(initParamName, servletContext.getInitParameter(initParamName));
|
||||||
|
}
|
||||||
|
Enumeration propertyNames = properties.propertyNames();
|
||||||
|
while (propertyNames.hasMoreElements()) {
|
||||||
|
String propertyName = (String) propertyNames.nextElement();
|
||||||
|
this.mergedInitParams.put(propertyName, properties.getProperty(propertyName));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServletContext getServletContext() {
|
@Override
|
||||||
return servletContext;
|
public Map<String, String> getInitParams() {
|
||||||
}
|
return this.mergedInitParams;
|
||||||
|
|
||||||
public String getInitParameter(String paramName) {
|
|
||||||
return tilesPropertyMap.getProperty(paramName);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Enumeration getInitParameterNames() {
|
|
||||||
return tilesPropertyMap.keys();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue