前言
freemarker介绍;
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
前面我介绍了如何整合thymeleaf,那么现在我们再来了解一下SpringBoot
中如何使用freemark
一、目标
使用freemark
视图模板,并且于SpringBoot进行整合。 使用freemark显示用户(user)的信息
二、实现
首先创建一个SpringBoot项目,添加如下依赖
<dependencies>
<!-- freemark -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
添加完依赖以后,就需要编写对应的Controller
跟view
和User.java
了
在src/main/java/com/yukong/chapter22
目录下新建User
package com.yukong.chapter22;
import java.util.Date;
/**
* @Auther: xiongping22369
* @Date: 2018/8/13 17:53
* @Description: user类
*/
public class User {
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 年龄
*/
private Integer age;
/**
* 性别 1=男 2=女 其他=保密
*/
private Integer sex;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
}
编写IndexController
实现将User
信息传递给前台ftl页面。
@Controller
public class IndexController {
@GetMapping("/aboutMe")
public String index(Model model) throws ParseException {
User user = new User();
user.setUsername("yukong");
user.setPassword("abc123");
user.setAge(18);
user.setSex(1);
model.addAttribute("user", user);
return "index";
}
}
注意这里使用的是@Controller
在resource
目录下新建templates
文件夹并且在该目录下新建文件index.ftl
记住是ftl
freemark文件的后缀名是ftl
index.ftl
代码
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>freemark</title>
</head>
<body>
<p> 你好 ${user.username}</p>
<p> 密码 ${user.password}</p>
<p> 性别:
<#if user.sex==1>
男
<#elseif user.sex==2>
女
<#else>
保密
</#if>
</p>
<p> 年龄 ${user.age}</p>
</body>
</html>
然后在src/resource/application.yml
配置一下thymeleaf
相关配置
server:
port: 8989
spring:
freemarker:
request-context-attribute: req #req访问request
suffix: .ftl #后缀名
content-type: text/html
enabled: true
cache: false #缓存配置
template-loader-path: classpath:/templates/ #模板加载路径 按需配置
charset: UTF-8 #编码格式
settings:
number_format: '0.##' #数字格式化,无小数点
启动Chapter22Application.java
并且访问http://localhost:8989/aboutMe
结果如图
由上图可知,freemark
成功接受到了后台传递的数据。并且渲染到页面显示。
三、总结
此致我们SpringBoot整合freemark就完毕了。
最后配套教程的代码全部在这里
github https://github.com/YuKongEr/SpringBoot-Study。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/14589.html