SpringBoot整合Freemarker(3)
程序员文章站
2022-04-19 21:38:10
...
摘自百度百科
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据 [1] 。
freemark的好处有以下几点:
可以彻底的分离表现层和业务逻辑。
可以提高开发效率。
-
使得开发过程中的人员分工更加明确。
同时也有些缺点:
应用FreeMarker模板技术,在修改模板后,可能会看到已经过期的数据。如:生成静态的HTML页面后,如果一旦模板改变,而没有及时更新模板生成的HTML页面的话,用户看到的就是过期的数据。
FreeMarker模板技术在应用过程中,FreeMarker中的变量必须要赋值,如果不赋值,那么就会抛出异常。想避免错误就要应用if/elseif/else 指令进行判段,如果对每一个变量都判断的话,那么则反而增加了编程的麻烦。
FreeMarker的map限定key必须是string,其他数据类型无法操作。
FreeMarker不支持集群应用。为了编成的方便性,把序列化的东西都放到了Session中,如Session,request等,在开发的过程中确实方便,但如果将应用放到集群中,就会出现错误。
SpringBoot整合Freemarker第一步:首先就是要引入Freemarker的依赖
<!-- 引入freeMarker的依赖包. -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
第二步:再resources目录下创建存放Freemarker模板的目录,命名为templates(注意这里取templates,Freemarker默认路径就是resources下的templates),同时创建好模板
this is icloudit <br>
${name}
${sex}
<#if sex==1>
男
<#elseif sex==2>
女
<#else>
其他
</#if>
<#list userlist as user>
${user}
</#list>
第三步:编写controller类
/*@RestController//表示该接口全部返回的是json格式的结果
*/
@Controller
public class IndexController {
@RequestMapping("/indexcontroller")
public String indexcontroller(Map<String,Object> result){
System.out.println("sfljasldfjlkasjfkl");
result.put("name","cd");
result.put("sex",0);
List<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
result.put("userlist",list);
return "index";
}
第四步:运行
出现上图则成功
下一篇: 请问男厕所在哪儿
推荐阅读
-
springboot整合H2内存数据库实现单元测试与数据库无关性
-
springboot整合EHCache的实践方案
-
springboot整合ehcache 实现支付超时限制的方法
-
Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码
-
SpringBoot使用FreeMarker模板发送邮件
-
Springboot整合Dubbo教程之项目创建和环境搭建
-
springboot整合H2内存数据库实现单元测试与数据库无关性
-
springboot整合mybatis将sql打印到日志的实例详解
-
详解Springboot整合Dubbo之代码集成和发布
-
浅谈Springboot整合RocketMQ使用心得