摘自百度百科
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";
}
第四步:运行
出现上图则成功