SpringBoot整合Freemarker(3)

摘自百度百科

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

              


           

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";
	}

第四步:运行

            

出现上图则成功

展开阅读全文

没有更多推荐了,返回首页