SpringBoot整合FreeMarker

闲言少叙,直接上代码

1、添加pom:

<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-freemarker</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

2、在application.yml主配置文件添加freemarker配置:

spring:
  freemarker:
    # 设置模板后缀名
    suffix: .ftl
    # 设置文档类型
    content-type: text/html
    # 设置页面编码格式
    charset: UTF-8
    # 设置页面缓存
    cache: false
    # 设置模板文件路径,默认是templates,此处设置为views
    template-loader-path: classpath:/templates/views

3、编写freemarker页面,index.ftl:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        table {
            width: 50%;
            font-size: .938em;
            border-collapse: collapse; /*边框合并*/
        }

        th {
            text-align: left;
            padding: .5em .5em;
            font-weight: bold;
            background: #66677c;
            color: #fff;
        }

        td {
            padding: .5em .5em;
            border-bottom: solid 1px #ccc;
        }

        table, table tr th, table tr td {
            border: 1px solid #0094ff;
        }

        /*设置边框*/
    </style>
</head>
<body>
<h1>取值(${name!'暂无'}表示name值为''时默认值为暂无)</h1>
${name!'暂无'}
<h1>非空判断</h1>
<#if name?exists>
存在的
</#if>
<h1>条件表达式</h1>
<#if sex='女士'>
女士
<#elseif sex='男士'>
男士
<#else>
保密
</#if>
<h1>局部变量</h1>
<#assign ctx>
${springMacroRequestContext.contextPath}
</#assign>
${ctx}
<h1>#include</h1>
<#include 'foot.ftl'>
<h1>表格</h1>
<table>
    <tr>
        <th>姓名</th>
        <th>性别</th>
        <th>年龄</th>
    </tr>

<#list users as user>
    <tr>
        <td>${user.name}</td>
        <td>${user.sex}</td>
        <td>${user.age}</td>
    </tr>
</#list>

</table>

</body>
</html>

4、foot.ftl页面:

<a href="login.ftl">登录1</a>
<a href="${ctx}/toLogin">登录2</a>

5、编写控制器类:

package com.hl.chapter37.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.*;

@Controller
public class IndexController {

    @RequestMapping(value = {"/", "/index"})
    public ModelAndView index() {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("index");
        modelAndView.addObject("name", null);
        modelAndView.addObject("sex", "女");
        List<Map> users = new ArrayList<Map>();
        for (int i = 0; i < 10; i++) {
            Map map = new HashMap();
            map.put("name", "A-" + i);
            map.put("sex", i % 2 == 0 ? "男" : "女");
            map.put("age", new Random().nextInt(100));
            users.add(map);

        }
        modelAndView.addObject("users", users);
        return modelAndView;
    }

    @RequestMapping(value = "/toLogin")
    public String toLogin() {
        return "login";
    }
}

6、运行效果如下:

7、下载完整代码


版权声明:本文为binglong_world原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。