千家信息网

springboot中如何整合freemarker

发表于:2025-02-09 作者:千家信息网编辑
千家信息网最后更新 2025年02月09日,这篇文章主要介绍"springboot中如何整合freemarker"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"springboot中如何整合freemar
千家信息网最后更新 2025年02月09日springboot中如何整合freemarker

这篇文章主要介绍"springboot中如何整合freemarker"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"springboot中如何整合freemarker"文章能帮助大家解决问题。

依赖

  org.springframework.boot  spring-boot-starter-parent  2.1.6.RELEASE      org.springframework.boot    spring-boot-starter-freemarker        org.projectlombok    lombok        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: 8001spring: application:  name: test-freemarker freemarker:  cache: false  settings:   template_update_delay: 0  template-loader-path: classpath:/templates/

启动类

@SpringBootApplicationpublic 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>        
序号 姓名 年龄 金钱 出生日期
${stu_index} >${stu.name} >${stu.age} ${stu.money} ${stu.birthday?date},${stu.birthday?time},${stu.birthday?string("yyyy年MM月dd日")}
姓名:${stuMap['stu1'].name}年龄: ${stuMap.stu1.age}<#list stuMap?keys as k> 姓名: ${stuMap[k].name} 年龄: ${stuMap[k].age}${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}//默认显示逗号分隔
          Title            

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) 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";  }}

关于"springboot中如何整合freemarker"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0