springboot集成freemarker

# [springboot技术栈](https://github.com/2425358736/dolphin/blob/master/README.md)

## [freemarke在线文档](http://freemarker.foofun.cn/index.html)

### FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据,	并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。	它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件

1. pom.xml增加freemarker开发包

org.springframework.boot spring-boot-starter-freemarker ``` 2. application.yml 中增加freemarker配置
spring:
  #freemarker配置
  freemarker:
    cache: false
    charset: UTF-8
    check-template-location: true
    content-type: text/html
    expose-request-attributes: true
    expose-session-attributes: true
    request-context-attribute: request
    template-loader-path: classpath:/templates
  1. 新建FreemarkerController
package com.dolphin.controller;

import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import java.util.*;

/**
 * 开发公司:青岛海豚数据技术有限公司
 * 版权:青岛海豚数据技术有限公司
 * 

* FreemarkerController * * @author 刘志强 * @created Create Time: 2019/2/12 */ @RestController @RequestMapping("/freemarker") public class FreemarkerController { @GetMapping("index") public ModelAndView index(ModelMap modelMap){ modelMap.put("userName","刘志强"); modelMap.put("date",new Date()); List> list = new ArrayList<>(); Map map1 = new HashMap<>(); map1.put("id",1); map1.put("name","张三"); list.add(map1); Map map2 = new HashMap<>(); map2.put("id",2); map2.put("name","李四"); list.add(map2); modelMap.put("list", list); return new ModelAndView("/freemarker/index", modelMap); } }

在这里介绍下@RestController和@Controller的区别
注解 说明
@RestController Controller中的方法无法直接返回视图 如 return “index” 这样是返回字符串"index"到前端, 而不是将index.ftl视图返回,ModelAndView不受影响
@Controller Controller可以配合视图解析器返回视图 如 return "index"是将index.ftl视图返回
  1. 新建freemarker模板index.ftl,在配置文件中的template-loader-path下新建目录或文件,跟controller返回的目录对应起来


字符串属性

${userName!""}

日期属性

${(date?string('yyyy-MM-dd hh:mm:ss'))!'日期为null'}

循环

<#list list as item>

第${item_index+1}个用户

用户名:${item.name}

id:${item.id}

判断1

<#if userName =='刘志强'>

存在刘志强

<#elseif userName =='王妍'>

存在王妍

<#else>

不存在刘志强和王妍

判断2

<#assign foo = (userName =='王妍')> ${foo?then('存在王妍', '不存在王妍')}
  1. 访问 http://localhost:6533/freemarker/index

freemarker基础语法介绍

${userName!""}

freemarker语法中不允许出现null值,!号是属性不存在时展示!号后面的内容


你可能感兴趣的:(后端)