FreeMarker使用

FreeMarker解析List<JSONObject>数据的疑惑 使用java从数据库查询出来如下List格式的数据,用于保存分类目录树: 理综 --- 物理 ------------ 高一物理 ------------ 高二物理 ------------ 高三物理 --- 化学 ------------ 高一化学 ------------ 高二化学 ------------ 高三化学 文综 --- 政治 --- 历史 [ { 阅读详情

使用FreeMarker实现向ftl模板中添加数据

Java代码中实现向list中添加数据

JSONObject map  = new JSONObject();
map.put("username", username);//放入map中
map.put("maxputoutdays", maxputoutdays);//放入map中

JSONObject result = new JSONObject();
JSONArray retArray = new JSONArray();
retArray.add(map);
result.put("array", retArray);//array提供为页面使用
//greatTempFile方法是将result里面的数据填充到projectdesc.ftl模板
ProjectDescToStringUtil.greatTempFile(null, result,"projectdesc.ftl");

ProjectDescToStringUtil工具类实现数据填充到模板

  • 需要jar包支持
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
</dependency>
  • 代码实现
public static String greatTempFile(HttpServletRequest request, JSONObject object,String templateFileName) {
        StringWriter writer = null;
        try {

            Configuration cfg = new Configuration();

            String url = ProjectDescToStringUtil.class.getClassLoader().getResource("/").getPath();
            //动态获取path
            String path = url.substring(url.indexOf("/"), url.lastIndexOf("/classes"))+"/ftl";;

            File dir = new File(path);
            cfg.setDirectoryForTemplateLoading(dir);
            Template t = cfg.getTemplate(templateFileName, "UTF-8"); // 模板文件名
            writer = new StringWriter();

            t.process(object, writer);

        } catch (Exception e) {
           //出异常,记录日志
        }

        return writer.toString();

    }

ftl模板中取值

  • 获取传递变量值:${item.username!},使用!防止空值报错

ftl模板中使用判断语句

  • 在<#if condition>中的condition条件应直接使用item.maxputoutdays取值,不能使用$符号类似这种${item.maxputoutdays!},负责会报错,无法识别。
<#list array as item> <#if item.maxputoutdays == '0'>满标当日
<#elseif item.maxputoutdays == '1'>满标次日
<#else>
满标第${item.maxputoutdays!}日
</#if>
</#list> 
  • 代码中的array类型为JSONObject extends HashMap implements Map
  • JSONArray extends ArrayList implements List

ftl模板制作(Windows环境)

  • 新建一个普通的txt文档,修改后缀为ftl即可
  • 以下为一个简单的ftl模板,内容为html代码片段
<#list array as item>
    <ul class="tabs">
        <li id="decsearch">
            <table width="500" border="1"
                style="border-collapse: collapse; border-spacing: 0; line-height: 30px;">
                <tr>
                    <td style="text-align: center;">借款用途</td>
                    <td style="padding-left: 5px;">${item.loanPurpose!}</td>
                </tr>
                <tr>
                    <td style="text-align: center;">募集期</td>
                    <td style="padding-left: 5px;">${item.investday!}天</td>
                </tr>
                <tr>
                    <td style="text-align: center;">起息日</td>
                    <td style="padding-left: 5px;">
                        <#if item.maxputoutdays == '0'>
                          募集满标当日
                        <#elseif item.maxputoutdays == '1'>
                         募集满标次日
                        <#else>
                          募集满标第${item.maxputoutdays!}日
                        </#if>
                    </td>
                </tr>
            </table>
        </li>
    </ul>
</#list>
用户视角下的vfsglobal预约困境:从注册到登录的全流程避坑指南 本文详细解析了vfsglobal签证预约系统从注册到登录的全流程操作,帮助用户避开常见技术陷阱。针对IP限制、DNS解析、浏览器缓存等登录障碍提供实用解决方案,并揭示账号管理的隐藏规则与支付环节的延时处理技巧,助力用户高效完成签证预约。 阅读详情

相关推荐

uni-app一键登录实战:从云函数配置到前端调用的完整指南

本文详细介绍了uni-app中一键登录功能的实现方法,从DCloud控制台配置到云函数开发,再到前端调用全流程。通过一键登录,用户无需输入账号密码即可快速使用本机手机号登录,显著提升用户体验和登录转化率。文章还提供了常见问题排查和安全合规要点,帮助开发者高效完成集成。

weixin_29291573的博客 445

FreeMarker-哈希表内建函数 学习

哈希表内建函数 一.语法 哈希表中包含元素:keys键,values值 keys:一个包含哈希表中查找到的键的序列 因为哈希表通常没有定义子变量的顺序,那么键名称的返回顺序就是任意的。 然而,一些哈希表维持一个有意义的顺序(询问程序员指定的哈希表是否是这样)。 比如,由上述 {…} 语法创建的哈希表保存了和你指定子变量相同的顺序。 values:一个包含哈希表中子变量的序列 注意并不是所有的哈希表...

宝拉天天想放假 571

刚入职,软件测试岗,有点迷茫不知道下一步怎么提升自己

软件测试前景和发展都是不错,已经入了软件测试这行业就坚挺下去

大白的博客 2217

Freemarker动态构造map,增加或改变元素

需求:遍历一个List,按照key值统计每个key值有多少个,将结果放到map中 由于freemarker不支持对map的直接操作,所以需要将对map的直接操作转化为重新构建新的map <!-- 初始化map --> <#assign creditDic = {}> <!-- 遍历list --> <#list report.creditTipss ...

cg_Amaz1ng的博客 2209

CS5523实战:如何用国产芯片完美替代LT8911设计MIPI转eDP电路(附原理图)

本文详细介绍了使用国产芯片CS5523完美替代LT8911进行MIPI转eDP电路设计的实战经验。文章从芯片选型、核心特性对比入手,深入剖析了电源时钟设计、MIPI/eDP接口的PCB布局与信号完整性要点,并提供了完整的原理图参考和调试排错指南,为硬件工程师实现国产化替代提供了清晰可行的方案。

yhn4567890的博客 1140

网络可视化工具netron详细安装流程

netron安装目录1.netron 简介2.不同操作系统下的安装使用方式2.1 在线版本:只要有浏览器就可以2.2 不同操作系统安装使用3.netron支持的网络框架4.netron测试演示 1.netron 简介 在实际的项目中,经过会遇到各种网络模型,需要我们快速去了解网络结构。如果单纯的去看模型文件,脑海中很难直观的浮现网络的架构。 这时,就可以使用netron可视化工具,可以清晰的看到每一层的输入输出,网络总体的架构,而且支持各种不同网络框架,简单好用。 2.不同操作系统下的安装使用方式 2.1

江南研习社 12万+

freemarker中的list

freemarker list (长度,遍历,下标,嵌套,排序) 1. freemarker获取list的size :   Java ArrayList&lt;String&gt; list = new ArrayList&lt;String&gt;();   Freemaker ${list?size}     2. list的遍历:   &lt;#list anim...

水墨江南 1819

Android7以上抓取https数据包-无需root

手机内装一个虚拟机,然后在虚拟机内运行我需要抓包的应用,该虚拟机内是不需要证书验证的。完美解决android7.0以上https无法抓包的问题。

qq_45764684的博客 1454

Freemarker的list指令和内建函数

Freemarker的list指令和内建函数 1.list指令 2.获取集合大小 3.JSON转换为对象 4.日期格式化 5.数字转换为字符串 6.运算符

Running_Tiger的博客 1万+

WPF中使用TreeView封装组合控件TreeView+DataGrid

wpf的功能非常强大,很多控件都是原生的,但是要使用TreeView+DataGrid的组合,就需要我们自己去封装实现。功能如上图所示, 目前基本上把常用的样式都实现了,购买源码后,可以自行修改样式。本文源码效果如下,(搞了好几天,的确有难度,所以源码也收费,便宜,赚点辛苦费)第一种:技术的选择是TreeView(也就是本文的演示)。这2个图都是第三方控件自带的,并且都是收费使用。首先说明一下,实现上面的效果,有3种方法。本文演示的是使用TreeView的实现。第二种:技术的选择是DataGrid。

故里2130 1650

XDMA原理学习(1)——DMA技术详解

DMA 技术是Direct Memory Access的缩写,其意思是“存储器直接访问”。它是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。DMA是所有现代计算机的重要特色,它允许不同速度的硬件设备进行沟通,而不需要依于中央处理器的大量中断负载。否则,中央处理器需要从来源把每一片段的数据复制到寄存器,然后把它们再次写回到新的地方。在这个时间里,中央处理器就无法执行其它的任务。

apple_53311083的博客 8381

Freemarker的使用

和缓存的差别 共同点:都可以减小数据库的访问压力。 区别: (1)缓存技术适用于小规模的数据。以及一些经常变动的数据。 (2)网页静态化技术适用于大规模但是变化不太频繁的数据。 Freemarker指令: assign指令用于在页面上定义一个变量 (1)定义简单类型 <#assign linkman="周先生"> 联系人:${linkman} (2)定义对象类型 <#assign info={"mobile":"13812345678",'address...

m0_64702880的博客 3340

基于STM32设计的环境检测系统(OneNet)_365

本项目设计并实现了一种基于STM32F103RCT6单片机的环境检测系统,系统集成了多种传感器模块,具备对环境温湿度、烟雾浓度、易燃气体浓度、一氧化碳浓度和整体空气质量的实时检测功能。系统通过1.44寸SPI接口LCD实现本地数据显示,同时配备有源蜂鸣器用于环境异常报警。在数据通信方面,系统利用ESP8266-WIFI模块,采用MQTT协议将各类传感器数据上传至OneNet云平台,并借助其可视化框架实现网页端可视化界面,可通过电脑和手机浏览器远程访问,实现环境数据的远程监控。该系统设计结构简单、功能全面,适

2189

Freemarker使用详解

1.什么是网页静态化技术 随着用户访问量以及数据量的增大,网页静态化技术方案如今越来越流行。 什么是网页静态化技术呢?简单来说就是将网页以纯静态方式的形式展现。 2.网页静态化技术与缓存技术的比较 共同点:都可以减小数据库的访问压力。 区别: (1)缓存技术适用于小规模的数据。以及一些经常变动的数据。 (2)网页静态化技术适用于大规模但是变化不太频繁的数据。 页面静态化与缓存技术的定义: 页面静态化是指通过一些模板技术(如freemarker)将数据模型生成静态html页面并通过..

qq_45441466的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

freemarker介绍及使用

FreeMarker快速入门 1. FreeMarker介绍 1.1 什么是FreeMarker Apache FreeMarker是一款开源的模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个java类库,是一款程序员可以嵌入他们所开发产品的组件。 模板使用FreeMarker Template Language(FTL)模板语言编写,这是一种简单的专用语言。模板用于展示数据,数据模型用于呈现什么数据。 模板

懵齐的博客 1808

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

FreeMarker template使用

赋值:<#assign val = 10> 输出:${val} 算数运算: <#-- 支持"+"、"-"、"*"、"/"、"%"运算符 --> <#assign number1 = 10> <#assign number2 = 5> "+" : ${number1 + number2} "-" : ${number1 - number2} "*" : ${number1 * number2} "/".

weixin_38320510的博客 6571

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spring Boot中使用FreeMarker及FreeMarker入门

文章目录一、FreeMarker简介二、Spring Boot整合FreeMarker1.添加依赖2.相关配置3.FreeMarker文件模板三、使用示例四、FreeMarker常用指令 一、FreeMarker简介 Freemarker 模版后缀为 .ftl(FreeMarker Template Language)。FTL 是一种简单的、专用的语言,它不是像 Java 那样成熟的编程语言。在模...

huangjhai的博客 4043

freemarker的使用

1.在pom文件中添加依赖 <!--freemark--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</version> </dependency> <dependency>

weixin_44939526的博客 978

【Freemarker】Freemarker简介以及基本使用

【Freemarker】Freemarker简介以及基本使用1. 什么是Freemarker?2. Freemarker 快速入门2.1 环境搭建2.2 创建模板文件2.3 生成文件3. Freemarker 基本指令3.1 assign 指令3.2 if 指令3.3 list 指令3.4 include 指令4. 联合使用指令5. 常用内建函数6. 处理不存在的变量 1. 什么是Freemarker? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网

来日浅谈的博客 3159

freemarker的使用心得,freemarker使用心得

freemarker目前虽然使用的公司不多,但是在某些时候就必须使用,当需要遍历json数据的时候,目前市面上的好多显示组件都达不到要求唯一能用的也就只有freemarker了。在java里使用的模板引擎有velocity、freemarker,至于velocity由于比较古老加之功能也不及freemarker那么强大使用的人群已经很少了。这次打算系统性的分享我学习freemarker的心得。

LANGZI7758521的专栏 3283

FreeMarker使用总结

FreeMarker使用总结 1.FreeMarker概述   1)FreeMarker是一个模板引擎: 一个基于模板生成文本输出的通用工具,使用纯Java编写。          模板+数据模型=输出   2)FreeMarker被设计用来生成HTML Web页面,适合于作为Web应用程序的一个组件,特别适合于MVC应用程序的视图组件。 ========================

小李飞刀的专栏 1175

FreeMarker的使用

FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。模板编写为FreeMarker Template Language (FTL)

qq_56959223的博客 836

FreeMarker基础使用

一、装配使用 1、导入依赖 <!--SpringBootFreemarker模板依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> 2、在properties里进行配置 ##Freemarker配置 #

qq_57404736的博客 1637

springboot如何使用Freemarker模版引擎

1.Freemarker介绍 Freemarker是三大主流模版引擎之一,与Jsp,Velocity并称“三剑客“。 2.Freemarker集成方案 ①在pom.xml中添加依赖 <!-- freemarker 依赖 --> <dependency> <groupId>org.springframework.boot</groupI...

蔡定努 726
上一篇: SpringMVC请求流程
下一篇: Java实现身份证获取年龄
木头房子的
博客等级 码龄9年 7粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值