如何在不使用 JSF 的情况下配置 ELResolver

How to configure ELResolver without using JSF

在我的项目中,我重写了一些函数扩展 javax.el.ELResolver(3.0 版)。我把 Class 放在 JSF faces-config.xml:

的配置文件中
<application>
    <el-resolver>com.myapp.common.el.SectionELResolver</el-resolver>
</application>

现在,我想删除 JSF 框架,但要保留我的 ELResolver 配置。如何配置? web.xml?

写一个servlet可以做什么,如何配置

您只能通过 JspApplicationContext#addELResolver(). There's no web.xml support for this. You can use a ServletContextListener 以编程方式完成任务。

@WebListener
public class ApplicationListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        JspFactory.getDefaultFactory()
                  .getJspApplicationContext(event.getServletContext())
                  .addELResolver(new SectionELResolver());
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        // NOOP.
    }

}