我需要ELResolver为 Google App Engine 项目注册一个自定义项。
因为它必须在收到任何请求之前注册,如 Javadoc 所指定:
在应用程序收到客户端的任何请求后注册 ELResolver 是非法的。如果在该时间之后尝试注册 ELResolver,则会引发 IllegalStateException。
我正在使用 ServletContextListener:
public class RegisterCustomELResolver implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
ServletContext context = sce.getServletContext();
JspApplicationContext jspContext =
JspFactory.getDefaultFactory().getJspApplicationContext(context);
jspContext.addELResolver(new MyELResolver());
}
...
}
问题是JspFactory.getDefaultFactory()返回总是空的。我已经填写了错误报告。任何解决方法的想法?