springboot使用Freemarker继承
最近需要用到Freemarker的继承。但是发现没有关于springboot配置Freemarker的继承的。所以趁现在有时间写个博客。
1. Freemarker继承介绍
Freemarker 通过 rapid java实现继承。实际是rapid的jar包提供的三个自定义标签。实现继承用到的有三个标签:@extends,@block ,@override. 
他们三个都有一个共同的属性: name
@extend标签: 要继承的模板
@block 标签: 声明在一个模板中定义那些代码是可以被重写的(@ovrride)
@override标签: 选择要重写的代码块
2. 依赖配置
我选择的是maven的依赖
  <!--rapid-framework 模板继承框架-->
        <dependency>
            <groupId>com.googlecode.rapid-framework</groupId>
            <artifactId>rapid-core</artifactId>
            <version>4.0.5</version>
        </dependency>
    <!-- lang包 缺少的话可能会报错  -->
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.6</version>
    </dependency>3.Freemarker配置
在application.yml的配置:
spring:
  freemarker:
    charset: UTF-8
    check-template-location: true
    template-loader-path: classpath:/templates在java中的配置,通过@Configuration注解创建配置类,将自定义标签添加进去
刚开始我引入jar包的时候告诉我找不到该类。但是我在idea中下载源码后就可以找到这些类了。不知道为什么
import cn.org.rapid_framework.freemarker.directive.BlockDirective;
import cn.org.rapid_framework.freemarker.directive.ExtendsDirective;
import cn.org.rapid_framework.freemarker.directive.OverrideDirective;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
/**
 * @Author LiuYinXin
 * Created at 2017/5/2.21:21.
 */
@Configuration
public class FreemarkerConfig {
    @Autowired
    freemarker.template.Configuration configuration;
    @PostConstruct
    public void setSharedVariable(){
        configuration.setSharedVariable("block", new BlockDirective());
        configuration.setSharedVariable("override", new OverrideDirective());
        configuration.setSharedVariable("extends", new ExtendsDirective());
    }
}4 模板继承
创建父模板base.ftl
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <title>
        <@block name="title" >父模板的 title</@block>
    </title>
</head>
<body>
    <div>
        <h3>
            <@block name="body" >父模板的 body</@block>
        </h3>
    </div>
</body>
</html>  创建son.ftl
<@override name="title">
    子模版的 title
</@override>  
<@override name="body">
    子模版的 body
</@override>
<!--继承的模板要写在最下面-->
<@extends name="base.ftl"/>  这样就搞定了Freemarker继承
5 致谢
spring 整合freemarker 实现模板继承—阿伦·艾
关注我,抽搐性更新
小猿日常
 
我的公众号,抽搐性更新日常。(突然想发上来。虽然没怎么发布过文章)
原文 http://blog.csdn.net/liuyinxinall/article/details/71159929
springboot使用Freemarker继承的更多相关文章
- springboot整合freemarker
		前后端分离现在越来越多,如何有效的使用springboot来整合我们的页面是一个很重要的问题. springboot整合freemarker有以下几个步骤,也总结下我所犯的错误: 1.加依赖: 2.配 ... 
- 记springboot+mybatis+freemarker+bootstrap的使用(1)
		一..springboot的配置 1.安装并配置maven maven是项目管理工具,可以自动下载并管理jar包之间的依赖关系,可通过maven自动配置springboot 参照百度经验https:/ ... 
- SpringBoot学习8:springboot整合freemarker
		1.创建maven项目,添加pom依赖 <!--springboot项目依赖的父项目--> <parent> <groupId>org.springframewor ... 
- springboot整合freemarker(转)
		添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ... 
- springboot 使用 freemarker 无法正常跳转的问题?
		1.springboot 使用 freemarker 无法正常跳转的问题? 参考:https://blog.csdn.net/Lin_xiaofeng/article/details/79122053 ... 
- springboot 整合 freemarker
		springboot 整合 freemarker 依赖 <parent> <groupId>org.springframework.boot</groupId> & ... 
- SpringBoot整合freemarker 引用基础
		原 ElasticSearch学习笔记Ⅲ - SpringBoot整合ES 新建一个SpringBoot项目.添加es的maven坐标如下: <dependency> <groupI ... 
- 【SpringBoot】09.SpringBoot整合Freemarker
		SpringBoot整合Freemarker 1.修改pom文件,添加坐标freemarker启动器坐标 <project xmlns="http://maven.apache.org ... 
- 基于springboot的freemarker创建指定格式的word文档
		在web或其他应用中,经常我们需要导出或者预览word文档,比较实际的例子有招聘网站上预览或者导出个人简历,使用POI导出excel会非常的方便,但是如果想导出word,由于其格式控制非常复杂,故而使 ... 
随机推荐
- win10家庭版系统安装SQL2005
			安装sql2005花了两天的时间,现在总结下,刚开始不知道win10家庭版系统没有本地用户和组的(详细说明 https://www.kafan.cn/A/5vz17o5jne.html) 一定要升级到 ... 
- RabbitMQ.Bus
			一个.netcore下的,十分简单的rabbitmq封装,基于RabbitMQ.Client Nuget https://www.nuget.org/packages/RabbitMQ.Bus/ ht ... 
- robot自动化分层设计
			robot framework框架分层设计 
- html  线条重叠变粗
			加入属性 单元格重叠变粗 使用border-collapse:collapse; 可以解决. 
- Subway Pursuit (二分)(交互题)
			题目来源:codeforces1039B Subway Pursuit 题目大意: 在1到n里有一个运动的点,要求找到这个点,每次可以查询一个区间内有没有这个点,每次这个点往左或者往右移动1到k个位置 ... 
- join()函数
			注意:会报错 正确的: 
- Spring定时任务执行
			备注:这个是基于搭建好spring的环境下的 注解方式: 1.定时任务类 package com.test;import java.util.Date;import org.springframewo ... 
- bzoj 2780: [Spoj]8093 Sevenk Love Oimaster(广义SAM)
			题目大意:给出n个原串,再给出m个查询串.求每个查询串出现在了多少原串中. 题解 直接对原串建一个广义SAM,然后把每一个原串放到SAM上跑一跑,记录一下每一个状态属于多少个原串,用$size$表示. ... 
- mask layer的遮罩层
			1. layer层 mask 遮罩效果 //渐变层 CAGradientLayer *gradientLayer = [CAGradientLayer layer]; gradientLayer.fr ... 
- java学习基础部分
			JVM虚拟机的位置: 垃圾回收在java程序运行过程中自动进行,程序员无法精准控制和干预. Java程序还会出现内存泄漏和内存溢出. Jre = jvm+java se标准类库 Jdk = jre + ... 
