之前的旧项目整合h2数据库web.xml内容如下
<context-param> <param-name>db.url</param-name> <param-value>jdbc:h2:~/test</param-value> </context-param>
如何在jfinal中添加context-param参数呢?
我的尝试如下

ConsumerWebBuilder添加2个监听器
public class ConsumerWebBuilder implements Consumer<WebBuilder> {
  @Override
  public void accept(WebBuilder builder) {
    // builder.addServletInitParam("myServlet", "key", "value");
    // 配置 Listener
    // org.h2.server.web.DbStarter
    builder.addListener("com.uairobot.bill.jfinal.listener.MyListener");
    builder.addListener("org.h2.server.web.DbStarter");
  }
}在自定义的监听器中获取servetContext,设置conttextParam
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class MyListener implements ServletContextListener {
  @Override
  public void contextInitialized(ServletContextEvent servletContextEvent) {
    org.h2.Driver.load();
    ServletContext servletContext = servletContextEvent.getServletContext();
    servletContext.setInitParameter("db.url", "litong");
    String value = servletContext.getInitParameter("db.url");
    log.info("db.url:{}", value);
  }
}这做确实可以添加context-param中,但是问题是
2个listener那个先执行,必须是设置参数的先执行?
在com.jfinal.server.undertow.WebBuilder中新增一个addServetContext的方法,请指导
 项目:JFinal
 
UndertowServer.create(...)
.configWeb(web -> {
web.addListener("...");
web.addInitParameter("...", "...");
})
.start();
如果上面这个不行,试一下这个:
UndertowServer.create(...)
.configWeb(web -> {
DeploymentInfo di = web.getDeploymentInfo();
di.xxx(...); // 这里调用 di 内的一些方法尝试实现功能
})
.start();
先通过 web.getDeploymentInfo() 获取到一个 DeploymentsInfo 对象,然对所有配置都可以通过这个对象中的方法来配置