Как настроить <context-param> программно без web.xml

Есть ли другой способ настроить параметр контекста, кроме того, который использует web.xml как в приведенном ниже примере?

<context-param>
    <param-name>com.sun.faces.numberOfLogicalViews</param-name>
    <param-value>10</param-value>
</context-param>

2 ответа

Решение

Начиная с Servlet 3.0, вы можете программно установить их через ServletContext#setInitParameter(),

Просто поставь ниже ServletContextListener в любом месте вашего веб-проекта. @WebListener аннотация заставит контейнер автоматически поднять и запустить его во время запуска веб-приложения.

@WebListener
public class Config implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        ServletContext servletContext = event.getServletContext(); 
        servletContext.setInitParameter("com.sun.faces.numberOfLogicalViews", "10");
    }

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

}

Если вы используете встроенный Tomcat, это выглядит так:

Context.getServletContext()
    .getServletRegistrations()
    .get("webdavservlet")
    .setInitParameter("listings", "true");
Другие вопросы по тегам