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.*;

/**
 * 开发公司:青岛海豚数据技术有限公司
 * 版权:青岛海豚数据技术有限公司
 * <p>
 * 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<Map<String,Object>> list = new ArrayList<>();
        Map<String,Object> map1 = new HashMap<>();
        map1.put("id",1);
        map1.put("name","张三");
        list.add(map1);
        Map<String,Object> 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的区别
注解说明
@RestControllerController中的方法无法直接返回视图 如 return “index” 这样是返回字符串"index"到前端, 而不是将index.ftl视图返回,ModelAndView不受影响
@ControllerController可以配合视图解析器返回视图 如 return "index"是将index.ftl视图返回
  1. 新建freemarker模板index.ftl,在配置文件中的template-loader-path下新建目录或文件,跟controller返回的目录对应起来
<html>
<body>
<h1>字符串属性</h1>
<p>${userName!""}</p>
<h1>日期属性</h1>
<p>${(date?string('yyyy-MM-dd hh:mm:ss'))!'日期为null'}</p>
<h1>循环</h1>
<div>
<#list list as item>
    <p>第${item_index+1}个用户</p>
    <p>用户名:${item.name}</p>
    <p>id:${item.id}</p>
</#list>
</div>
<h1>判断1</h1>
<#if userName =='刘志强'>
    <P>存在刘志强</p>
<#elseif userName =='王妍'>
    <P>存在王妍</P>
<#else>
    <P>不存在刘志强和王妍</P>
</#if>
<h1>判断2</h1>
<#assign foo = (userName =='王妍')>
${foo?then('存在王妍', '不存在王妍')}
</html>
  1. 访问 http://localhost:6533/freemarker/index

freemarker基础语法介绍

<p>${userName!""}</p>

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值