欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot整合Freemarker(3)

程序员文章站 2022-04-19 21:38:10
...

摘自百度百科

FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件配置文件源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据 [1]  。

freemark的好处有以下几点:

  1. 可以彻底的分离表现层和业务逻辑

  2. 可以提高开发效率。

  3. 使得开发过程中的人员分工更加明确。

同时也有些缺点:

  1. 应用FreeMarker模板技术,在修改模板后,可能会看到已经过期的数据。如:生成静态的HTML页面后,如果一旦模板改变,而没有及时更新模板生成的HTML页面的话,用户看到的就是过期的数据。

  2. FreeMarker模板技术在应用过程中,FreeMarker中的变量必须要赋值,如果不赋值,那么就会抛出异常。想避免错误就要应用if/elseif/else 指令进行判段,如果对每一个变量都判断的话,那么则反而增加了编程的麻烦。

  3. FreeMarker的map限定key必须是string,其他数据类型无法操作。

  4. 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),同时创建好模板

              SpringBoot整合Freemarker(3)


           

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整合Freemarker(3)

出现上图则成功