如何在<context-param>没有 web 的情况下以编程方式配置.xml



有没有其他方法可以配置上下文参数,不包括使用web.xml的参数,如以下示例所示?

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

从 Servlet 3.0 开始,您可以通过 ServletContext#setInitParameter() 以编程方式设置它们。

只需将下面的ServletContextListener放在您的 Web 项目中的任何位置即可。@WebListener注释将使容器在 Web 应用启动期间自动选取并运行它。

@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");

相关内容

最新更新