2016-07-25 3 views
0

В моем проекте я переопределяю некоторые функции, расширяя javax.el.ELResolver (версия 3.0). И я поставил класс в конфигурационном файле JSF faces-config.xml:Как настроить ELResolver без использования JSF

<application> 
    <el-resolver>com.myapp.common.el.SectionELResolver</el-resolver> 
</application> 

Теперь я хочу, чтобы удалить рамки JSF, но, чтобы сохранить конфигурацию моего ELResolver. Как настроить? Что я могу сделать, чтобы написать сервлет и как его настроить в web.xml?

ответ

1

Вы можете сделать это программно только с помощью JspApplicationContext#addELResolver(). Нет поддержки web.xml. Для выполнения задачи вы можете использовать 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. 
    } 

} 
Смежные вопросы