【问题标题】:How does sparkjava(java webframe) auto refresh pagesparkjava(java webframe)如何自动刷新页面
【发布时间】:2017-04-26 12:38:21
【问题描述】:

我是 spark 的新开发者,现在我被一个问题阻止了。 我将 freemarker 实现为 web 模板。 修改 .ftl 文件时与其他框架不同,您无需重新启动服务器。 但是现在在我的本地,如果我想看到更改,它必须重新启动服务器。 下面是代码。

public class SparkServer {
public static void main(String[] args){
    get("/hello",(request,response) ->{
        Map root = new HashMap();
        root.put("user", "xiekakaban");
        Map product = new HashMap();
        product.put("name","Pringles");
        product.put("price",13.2);
        root.put("product",product);
        return new ModelAndView(root,"test.ftl");
    },FreeMarkerEngine.getInstance());
}

}

public class FreeMarkerEngine extends TemplateEngine{
private static FreeMarkerEngine freeMarkerEngine;
private Configuration freeConfig;

private FreeMarkerEngine() throws IOException{
    freeConfig = new Configuration();
    freeConfig.setDirectoryForTemplateLoading(StringUtil.getResourceFile("templates"));
    freeConfig.setTemplateUpdateDelay(1);

}
public static FreeMarkerEngine getInstance(){
    if(freeMarkerEngine == null){
        try {
            freeMarkerEngine = new FreeMarkerEngine();
        } catch (IOException e) {
            e.printStackTrace();
            System.exit(0);
        }
    }
    return freeMarkerEngine;
}
@Override
public String render(ModelAndView modelAndView) {
    StringWriter stringWriter = new StringWriter();
    try {
        freeConfig.clearTemplateCache();
        freeConfig.clearSharedVariables();
        freeConfig.clearEncodingMap();
        Template template = freeConfig.getTemplate(modelAndView.getViewName());
        template.process(modelAndView.getModel(), stringWriter);
        System.out.println(stringWriter.toString());
        return stringWriter.toString();
    } catch (IOException | TemplateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return "Can not find the template:"+modelAndView.getViewName();
}

}

我不确定是 spark 还是 freemarker 缓存。但是我有明确的 freemarker 缓存。

任何人都可以帮助我.....

【问题讨论】:

    标签: java freemarker spark-java


    【解决方案1】:

    好的,我已经弄清楚了。

    Reloading the static files in Spark/Jetty-server

    首先,我认为您应该确定 freemarker 加载哪个页面。 如果您没有设置,它将在“目标”折叠下加载 ftl。

    我想我提出了一个愚蠢的问题....

    【讨论】:

      猜你喜欢
      • 2015-01-22
      • 2013-02-23
      • 2012-07-21
      • 2015-12-06
      • 2012-10-24
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多