Java 使用 freemarker 模板引擎的相关疑问 ,求大神走过路过不要错过

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 使用 freemarker 模板引擎的相关疑问 ,求大神走过路过不要错过相关的知识,希望对你有一定的参考价值。

项目需要 放弃 jsp 改用 freemarker , 一般使用 freemarker 的 ftl 做前端页面 还是 使用 html 做页面呢 ?? 还有如果用 html 做页面, 怎么配置 web.xml 文件 ? 使用 ftl 和 html 做前端有什么 区别吗 ? 还是可以两者同时存在 一起用 ....?

FreeMarker 是一个用Java编写的模板引擎,主要用来生成HTML Web页面,特别是基于MVC模式的应用程序。虽然FreeMarker具有一些编程的能力,但不像php,通常由Java程序准备要显示的数据,由 FreeMarker模板生成页面。 FreeMarker可以作为Web应用框架一个组件,但它与容器无关,在非Web应用程序环境也能工作的很好。 FreeMarker适合作为MVC的视图组件,还能在模板中使用JSP标记库。

所以你其实是用freemarker的ftl 做前端页面来生成对应的html页面。
ftl模板 + Map数据模型 = 输出html
然后web.xml其实就是ftl的模板,使用ftl的话,其实就是java+xml利用freemarker的模板来生成HTML。当然你生成的HTML是可以跟HTML做的前端一起有的。追问

就是用 ftl 做前端页面 或是 生成 html 页面感觉比较繁琐, 能不能 直接用html做页面,在html中用标签, 或者说 用ftl 是代表 ftl 页面 还是 生成 html 的东西 ??? 不理解 ftl

参考技术A 就是个模版,
跟jsp 差不多少
很多人说是速度快点,
个人觉得让个差不多少
如果就是个静态的何必 用模版呢

别共同用哦

模板引擎freemarker动态更新生成JSON模板字段值,Java

java模板引擎freemarker动态更新生成JSON模板字段值

(1)pom.xml引入:

        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
        </dependency>

(2)建立一个json模板文件存储json_template.json:


  "name": "$name",
  "year": $year

(3)开始以(2)中的json模板动态更新、生成json对象数据:

        import freemarker.template.Configuration;
        import freemarker.template.Template;
        import freemarker.template.TemplateExceptionHandler;



        Configuration cfg= new Configuration(Configuration.VERSION_2_3_29);
        try 
            cfg.setDirectoryForTemplateLoading(new File("./"));
         catch (IOException e) 
            throw new RuntimeException(e);
        

        cfg.setDefaultEncoding("UTF-8");
        cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
        cfg.setLogTemplateExceptions(false);
        cfg.setWrapUncheckedExceptions(true);
        cfg.setFallbackOnNullLoopVariable(false);


        try 
            Template temp = cfg.getTemplate("./json_template.json");

            Map<String, String> values = new HashMap<>();
            values.put("name","zhangphil");
            values.put("year","2222");

            StringWriter writer = new StringWriter();
            temp.process(values, writer);
            String result = writer.toString();
            System.out.println(result);
         catch (Exception e) 
            throw new RuntimeException(e);
        

输出:


  "name": "zhangphil",
  "year": 2222

以上是关于Java 使用 freemarker 模板引擎的相关疑问 ,求大神走过路过不要错过的主要内容,如果未能解决你的问题,请参考以下文章

Java 使用 freemarker 模板引擎的相关疑问 ,求大神走过路过不要错过

freemarker--模板引擎

模板引擎freemarker动态更新生成JSON模板字段值,Java

模板引擎freemarker动态更新生成JSON模板字段值,Java

freemarker

springboot中添加模板引擎freemarker和thymeleaf