springboot 整合 freemarker代码实例

网友投稿 286 2022-12-25


springboot 整合 freemarker代码实例

这篇文章主要介绍了springboot 整合 freemarker代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

依赖

org.springframework.boot

spring-boot-starter-parent

2.1.6.RELEASE

org.springframework.boot

spring-boot-starter-freemarker

org.projectlombok

com.squareup.okhttp3

okhttp

3.9.1

commons-io

commons-io

2.6

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

application.yml

application 参数路径

server:

port: 8001

spring:

application:

name: test-freemarker

freemarker:

cache: false

settings:

template_update_delay: 0

template-loader-path: classpath:/templates/

启动类

@SpringBootApplication

public class FreemarkerApplication {

public static void main(String[] args) {

SpringApplication.run(FreemarkerApplication.class, args);

}

@Bean

public RestTemplate restTemplate(){

return new RestTemplate(new OkHttp3ClientHttpRequestFactory());

}

}

模板文件

<#if students??>

<#list students as stu>

#list>

#if>

姓名:${stuMap['stu1'].name}

年龄: ${stuMap.stu1.age}

<#list stuMap?keys as k>

姓名: ${stuMap[k].name}

年龄: ${stuMap[k].age}

#list>

${stuMap???c}//判断是否存在,和使用 ?c 输出字符串

${students???c}

${(mozq.bank.address)!'中国建设银行'}//默认值方式处理空值

${students?size}//集合大小

<#assign text="{'bank':'中国农业银行', 'address':'北大街'}">

<#assign data=text?eval>

开户行: ${data.bank} 地址: ${data.address}

${123456123?c}//不显示逗号分隔

${123456123}//默认显示逗号分隔

<#if model??>

<#list model as item>

#list>

#if>

Controller

package com.mozq.springboot.freemarker.controller;

import com.mozq.springboot.freemarker.model.Student;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.http.ResponseEntity;

import org.springframework.stereotype.Controller;

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

import org.springframework.web.client.RestTemplate;

import java.util.*;

@Controller //注意不要使用 @RestController

@RequestMapping("/freemarker")

public class FreeMarkerController {

@Autowired

private RestTemplate restTemplate;

@RequestMapping("/banner")

public String banner(Map map){

String dataUrl = "http://localhost:31001/cms/config/getmodel/5a791725dd573c3574ee333f";

ResponseEntity entity = restTemplate.getForEntity(dataUrl, Map.class);

Map body = entity.getBody();

map.putAll((Map extends String, ?>) body);

// restTemplate.getForEntity("")

return "index_banner";

}

@RequestMapping("/test2")

public String test2(Map map){

Student stu1 = new Student();

stu1.setName("刘备");

stu1.setAge(18);

stu1.setBirthday(new Date());

stu1.setMoney(22225.8F);

Student stu2 = new Student();

stu2.setName("孙权");

stu2.setAge(20);

stu2.setBirthday(new Date());

stu2.setMoney(24525.8F);

stu2.setBestFriend(stu1);

List students = new ArrayList<>();

students.add(stu1);

students.add(stu2);

//模板使用的数据

map.put("students", students);

HashMap stuMap = new HashMap<>();

stuMap.put("stu1", stu1);

stuMap.put("stu2", stu2);

map.put("stuMap", stuMap);

//返回模板的位置,基于 resources/templates

return "test2";

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java使用Thread和Runnable的线程实现方法比较
下一篇:Java线程操作的常见方法【线程名称获取、设置、线程启动判断等】
相关文章

 发表评论

暂时没有评论,来抢沙发吧~