新建一个module


选择parent

test-freemarker



spring‐boot‐starter‐freemarker:spring boot 提供的关于 freemaker的相关的包
lombok:写模型类需要。
okhttp:远程访问的包

 <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
 

复制进来以后,刷新一下

配置文件

application.yml和logback-spring.xml
两个配置文件直接复制过去

只配置freemarker的两厢,测试的时候把缓存关闭。监测时候设置为0表示立即去检查

server:
port: 8088 #服务端口 spring:
application:
name: test-freemarker #指定服务名
freemarker:
cache: false #关闭模板缓存,方便测试
settings:
template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便进行模板测试


新建一个包

日期类型的引入,是这个包下面的 java.util.Date;

写完了实体类的属性,加上@Data的注解,报错,通过手动的导入lombok.Data这个命名空间也不行。

application.yml的配置文件里面,导入的包也有lombok,并没有异常信息。

解决lombok的问题

在模块的引用里面,发现包的引用都有问题。

后来经过对比自己创建项目的pom.xml和资料里面给的pom.xml做了对比。发现可能是在创建项目的时候,没有选择好 module的parent项目。在pom.xml加上parent的标签 里面的配置。

完整的pom.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent>
<artifactId>xc-framework-parent</artifactId>
<groupId>com.xuecheng</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../xc-framework-parent/pom.xml</relativePath>
</parent> <version>1.0-SNAPSHOT</version> <modelVersion>4.0.</modelVersion>
<artifactId>test-freemarker</artifactId> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
</project>

继续代码

package com.xuecheng.test.freemarker.model;

import lombok.Data;
import lombok.ToString; import java.util.Date;
import java.util.List; @Data
@ToString
public class Student {
private String name;//姓名
private int age;//年龄
private Date birthday;//生日
private Float money;//钱包
private List<Student> friends;//朋友列表
private Student bestFriend;//最好的朋友
}
 

创建模板

新建templates文件夹

新建模板文件。格式是ftl格式的

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello World!</title>
</head>
<body>
Hello ${name}
</body>
</html>

引入spring-boot-starter-web

这里不知道是不是视频没有仔细看还是怎么的。需要引入,spring-boot-starter-web方面下面创建的Controller可以用SpringMVC的一些注解

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

controller

新建controller文件夹,然后新建FreemarkerController

map作为一个形参。响应给模板的数据

package com.xuecheng.test.freemarker.controller;

import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Map;

@RequestMapping("/freemarker")
public class FreemarkerController {
@RequestMapping("/test1")
public String test1(Map<String,Object> map){
//返回freemarker模板的位置
map.put("name","传智播客");
return "test1";
}
}

创建spring boot的启动类

package com.xuecheng.test.freemarker;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class FreemarkerTestApplication {
public static void main(String[] args) {
SpringApplication.run(FreemarkerTestApplication.class,args);
}
}

conktroller加上@RestController

重启应用,测试:http://localhost:8088/freemarker/test1

在这里加断点测试

把@ResetController改成@Controller

最终代码

package com.xuecheng.test.freemarker.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import java.util.Map; @RequestMapping("/freemarker")
@Controller
public class FreemarkerController {
@RequestMapping("/test1")
public String test1(Map<String,Object> map){
//返回freemarker模板的位置
map.put("name","传智播客");
return "test1";
}
}

最新文章

  1. HTML5 File详解
  2. nice-validator验证插件
  3. velocity的一些用法
  4. pentaho cde popup弹出框口
  5. CentOS 7.2安装Zabbix 3.2全攻略
  6. C#------如何判断输入的是否为纯数字
  7. Third-person Camera Navigation
  8. smarty 变量调节器
  9. 开个CS5.4编译编译,调试错误贴
  10. C#基础:异步调用 【转】
  11. 菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t
  12. python算法题
  13. Maven下载、安装和配置(二)
  14. Reactive Extensions 相见恨晚的Rx.Net
  15. IO流_演示键盘录入
  16. Office 2010 打开文件后所有的格式成了时间的解决方法
  17. LA 4728 Square ,旋转卡壳法求多边形的直径
  18. linux I/O函数使用
  19. java代码====实现按钮点击改变颜色=======
  20. cassandra cqlsh 和 python客户端

热门文章

  1. 远程连接服务器数据库报错:Host ‘XXXXXX’ is blocked because of many connection errors
  2. 【转】Elastic-Job
  3. webpack中typeScript的打包配置
  4. java中的文件上传下载
  5. Pycharm----显示tab制表符
  6. php基本语法形式
  7. 001-官网安装openstack之-安装前基础环境准备
  8. BZOJ 2281: [Sdoi2011]黑白棋 (Nim游戏+dp计数)
  9. CF70E Information Reform
  10. P2993 [FJOI2014]最短路径树问题