set Tiles 2.2 ELAttributeEvaluator on RendererFactory as well (SPR-7251)
This commit is contained in:
parent
c8984d2e30
commit
65655b949f
|
|
@ -31,6 +31,7 @@ import javax.servlet.jsp.JspFactory;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.apache.tiles.TilesApplicationContext;
|
import org.apache.tiles.TilesApplicationContext;
|
||||||
|
import org.apache.tiles.TilesContainer;
|
||||||
import org.apache.tiles.TilesException;
|
import org.apache.tiles.TilesException;
|
||||||
import org.apache.tiles.awareness.TilesApplicationContextAware;
|
import org.apache.tiles.awareness.TilesApplicationContextAware;
|
||||||
import org.apache.tiles.context.AbstractTilesApplicationContextFactory;
|
import org.apache.tiles.context.AbstractTilesApplicationContextFactory;
|
||||||
|
|
@ -54,6 +55,7 @@ import org.apache.tiles.impl.mgmt.CachingTilesContainer;
|
||||||
import org.apache.tiles.locale.LocaleResolver;
|
import org.apache.tiles.locale.LocaleResolver;
|
||||||
import org.apache.tiles.preparer.BasicPreparerFactory;
|
import org.apache.tiles.preparer.BasicPreparerFactory;
|
||||||
import org.apache.tiles.preparer.PreparerFactory;
|
import org.apache.tiles.preparer.PreparerFactory;
|
||||||
|
import org.apache.tiles.renderer.RendererFactory;
|
||||||
import org.apache.tiles.servlet.context.ServletUtil;
|
import org.apache.tiles.servlet.context.ServletUtil;
|
||||||
import org.apache.tiles.startup.BasicTilesInitializer;
|
import org.apache.tiles.startup.BasicTilesInitializer;
|
||||||
import org.apache.tiles.startup.TilesInitializer;
|
import org.apache.tiles.startup.TilesInitializer;
|
||||||
|
|
@ -533,6 +535,16 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D
|
||||||
Object baefValue = baefCtor.newInstance(evaluator);
|
Object baefValue = baefCtor.newInstance(evaluator);
|
||||||
Method setter = container.getClass().getMethod("setAttributeEvaluatorFactory", aef);
|
Method setter = container.getClass().getMethod("setAttributeEvaluatorFactory", aef);
|
||||||
setter.invoke(container, baefValue);
|
setter.invoke(container, baefValue);
|
||||||
|
Method getRequestContextFactory = BasicTilesContainer.class.getDeclaredMethod("getRequestContextFactory");
|
||||||
|
getRequestContextFactory.setAccessible(true);
|
||||||
|
Method createRendererFactory = BasicTilesContainerFactory.class.getDeclaredMethod("createRendererFactory",
|
||||||
|
TilesApplicationContext.class, TilesRequestContextFactory.class, TilesContainer.class, aef);
|
||||||
|
createRendererFactory.setAccessible(true);
|
||||||
|
BasicTilesContainerFactory tcf = new BasicTilesContainerFactory();
|
||||||
|
RendererFactory rendererFactory = (RendererFactory) createRendererFactory.invoke(
|
||||||
|
tcf, container.getApplicationContext(), getRequestContextFactory.invoke(container),
|
||||||
|
container, baefValue);
|
||||||
|
container.setRendererFactory(rendererFactory);
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex) {
|
||||||
throw new IllegalStateException("Cannot activate ELAttributeEvaluator", ex);
|
throw new IllegalStateException("Cannot activate ELAttributeEvaluator", ex);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue