Spring Cloud 2.x系列之springboot集成freemarker

简介: SVN多版本库环境的搭建 OAuth 2.0是什么?看这篇文章就够了。 前端 Java Python等资源合集大放送 springboot 中自带的页面渲染工具为thymeleaf ,freemarker这种模板引擎用的也比较多。

springboot 中自带的页面渲染工具为thymeleaf ,freemarker这种模板引擎用的也比较多。

一、在spring中springMVC代表着view层组件

二、为什么使用freemarker:简单容易学、逻辑分明

三、freemarker优点:不依赖servlet、网络或者web环境

7764af606ee8cce21c0d4b64b4f4d9861bf84261

1、新建maven项目,对应的pom.xml文件如下

<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

   <modelVersion>4.0.0</modelVersion>
   <groupId>spring-cloud</groupId>

   <artifactId>sc-freemarker</artifactId>

   <version>0.0.1-SNAPSHOT</version>

   <packaging>jar</packaging>

   <name>sc-freemarker</name>

   <url>http://maven.apache.org</url>



   <parent>

      <groupId>org.springframework.boot</groupId>

      <artifactId>spring-boot-starter-parent</artifactId>

      <version>2.0.4.RELEASE</version>

   </parent>

   <dependencyManagement>

      <dependencies>

        <dependency>

           <groupId>org.springframework.cloud</groupId>

           <artifactId>spring-cloud-dependencies</artifactId>

           <version>Finchley.RELEASE</version>

           <type>pom</type>

           <scope>import</scope>

        </dependency>

      </dependencies>

   </dependencyManagement>


   <dependencies>

      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

      </dependency>


      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-freemarker</artifactId>

      </dependency>

   </dependencies>

</project>

2、新建配置文件application.yml

server:
  port: 8081


spring:
  application:
    name: sc-freemarker
  freemarker:
    allow-request-override: false
    cache: true
    check-template-location: true
    charset:UTF-8
    content-type: text/html
    expose-request-attributes: false
    expose-session-attributes: false
    suffix: .ftl
    templateEncoding: UTF-8
    templateLoaderPath: classpath:/templates/
    expose-spring-macro-helpers: false

备注:freemarker有哪些配置项可以参考类

org.springframework.boot.autoconfigure.freemarker.FreeMarkerProperties

3、新建一个controller

package sc.freemarker.controller;

import java.util.ArrayList;

import java.util.List;



import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

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



import sc.freemarker.model.User;



@Controller

public class FreemarkerController {



   @RequestMapping("/getUser")

   public StringgetUser(Integer id, Model model){

      User u = new User();

      u.setId(1);

      u.setAge(13);

      u.setSex(1);

      u.setUserName("黄金");

      User l = new User();

      l.setId(1);

      l.setAge(23);

      l.setSex(0);

      l.setUserName("白银");

      List<User> friends = newArrayList<User>();

      friends.add(l);

      u.setFriends(friends);

      model.addAttribute("user",u);

      return"getUser";

   }



}

备注:注意最外层的控制层注解只能用@Controller

4、新建模板文件getUser.ftl

<!DOCTYEhtml>

<htmlxmlns="http://www.w3.org/1999/xhtml"

      xmlns:th="http://www.thymeleaf.org"

      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">

<head>

<title>Hello World!</title>

</head>

<body>

      <center>

           <p>welcome${user.userName} to freemarker!</p>

           <p>

                      年龄: ${user.age}</br>

                 性别:

                 <#ifuser.sex==0> 女 <#elseifuser.sex==1> 男 <#else> 保密

                 </#if>

           </p>

           <h4>我的好友:</h4>

           <#listuser.friends as f> 姓名:${f.userName} , 年龄${f.age} <br>

           </#list>

      </center>

</body>

</html>

5、其他项目文件如下图

9142d0342724bb825754b50a1aa80fad36acbc48

6、运行FreemarkerApplication.java类,启动项目;并检查启动信息,确认freemarker配置是否生效

499cac3b78f18ecf3642482cb521972cece28d9c

7、访问页面http://127.0.0.1:8081/getUser

f30aedff079bd6daae6d94c19056aa159e8fb1e1

源码:

https://gitee.com/hjj520/spring-cloud-2.x/tree/master/sc-freemarker

本文作者:java乐园

本文来自云栖社区合作伙伴“JAVA乐园”,了解相关信息可以关注“JAVA乐园

相关文章
|
1月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
9天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
21 2
|
14天前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
55 1
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
55 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
24天前
|
JSON Java API
springboot集成ElasticSearch使用completion实现补全功能
springboot集成ElasticSearch使用completion实现补全功能
24 1
|
14天前
|
XML 存储 Java
SpringBoot集成Flowable:构建强大的工作流引擎
在企业级应用开发中,工作流管理是核心功能之一。Flowable是一个开源的工作流引擎,它提供了BPMN 2.0规范的实现,并且与SpringBoot框架完美集成。本文将探讨如何使用SpringBoot和Flowable构建一个强大的工作流引擎,并分享一些实践技巧。
39 0
|
1月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
103 1
|
1月前
|
负载均衡 网络协议 Java
浅谈Springboot与Springcloud的区别
浅谈Springboot与Springcloud的区别
38 1
|
1月前
|
存储 前端开发 Java
Spring Boot 集成 MinIO 与 KKFile 实现文件预览功能
本文详细介绍如何在Spring Boot项目中集成MinIO对象存储系统与KKFileView文件预览工具,实现文件上传及在线预览功能。首先搭建MinIO服务器,并在Spring Boot中配置MinIO SDK进行文件管理;接着通过KKFileView提供文件预览服务,最终实现文档管理系统的高效文件处理能力。
278 11
|
26天前
|
缓存 Java 程序员
Java|SpringBoot 项目开发时,让 FreeMarker 文件编辑后自动更新
在开发过程中,FreeMarker 文件编辑后,每次都需要重启应用才能看到效果,效率非常低下。通过一些配置后,可以让它们免重启自动更新。
26 0

热门文章

最新文章

下一篇
无影云桌面