springboot整合freemarker生成静态html的demo.zip
在本项目"springboot整合freemarker生成静态html的demo.zip"中,我们将探讨如何将SpringBoot框架与FreeMarker模板引擎结合,以实现动态数据驱动的静态HTML页面生成。FreeMarker是一个强大的、开源的模板语言,它允许开发者将业务逻辑与视图层分离,使得前端设计更加灵活。 我们需要在SpringBoot项目的`pom.xml`文件中添加FreeMarker的依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> ``` 完成依赖添加后,SpringBoot会自动配置FreeMarker的相关设置。默认情况下,FreeMarker模板文件(`.ftl`)应该放在`src/main/resources/templates`目录下。 接着,创建一个FreeMarker模板文件,例如`index.ftl`,在这个文件中,我们可以定义HTML结构,并使用`${}`符号来插入动态数据: ```html <!DOCTYPE html> <html> <head> <title>${title}</title> </head> <body> <h1>Welcome to ${appName}!</h1> <p>当前时间:${currentDateTime}</p> </body> </html> ``` 然后,在SpringBoot的Controller层,我们需要创建一个处理请求的Controller方法,将模型数据绑定到FreeMarker模板,并返回生成的HTML: ```java import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import java.time.LocalDateTime; @Controller public class ViewController { @GetMapping("/index") public String index(Model model) { model.addAttribute("title", "SpringBoot + FreeMarker Demo"); model.addAttribute("appName", "Demo App"); model.addAttribute("currentDateTime", LocalDateTime.now()); return "index"; // 这里的"index"对应的是模板文件的名字 } } ``` 上述代码中,`Model`对象用于存储要在模板中使用的数据,`return "index"`表示我们要使用`index.ftl`模板来生成响应。 此外,如果想要通过字符串生成HTML,可以使用`FreemarkerTemplateUtils`类(需要引入`spring-context-support`依赖),如下所示: ```java import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; import java.io.IOException; import java.util.HashMap; import java.util.Map; @Configuration cfg = new Configuration(Configuration.VERSION_2_3_30); cfg.setClassForTemplateLoading(this.getClass(), "/"); Map<String, Object> dataModel = new HashMap<>(); dataModel.put("title", "String Gen Demo"); dataModel.put("message", "Hello, World!"); try { Template template = cfg.getTemplate("stringGen.ftl"); String generatedHtml = FreeMarkerTemplateUtils.processTemplateIntoString(template, dataModel); System.out.println(generatedHtml); } catch (IOException | TemplateException e) { e.printStackTrace(); } ``` 这里,我们创建了一个`HashMap`来存储数据,然后使用`FreeMarkerTemplateUtils`的`processTemplateIntoString`方法将模板与数据合并成HTML字符串。 这个"springboot整合freemarker生成静态html的demo"项目展示了如何在SpringBoot应用中集成FreeMarker,以及如何通过模板和字符串两种方式生成HTML。这有助于我们构建更高效、更易于维护的Web应用,将视图层与业务逻辑有效解耦。
- 1
- 2
- 3
- 粉丝: 318
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【java毕业设计】智慧社区门户网站后台管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区新闻资讯管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区共享资源管理后台(源代码+论文+PPT模板).zip
- 基于 Unet++ 网络模型对【植物叶片病害区域】图像分割python项目【包含数据集、完整代码等】
- 【java毕业设计】智慧社区在线影院管理后台(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区会员管理系统(含文件上传下载)(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区公告管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区视频内容管理平台(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区管理员权限设置系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区留言回复管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区密码重置系统(后台管理)(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区登录日志管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区新闻发布与审核系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区智慧影院影片管理系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区智慧影院评论与评分系统(源代码+论文+PPT模板).zip
- 【java毕业设计】智慧社区智慧影院票务管理系统(源代码+论文+PPT模板).zip