freemarker

FreeMarker常用方式总结及问题解决

星期三, 八月 2nd, 2023 | JAVA-and-J2EE | 没有评论

概念
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配 置文件,源代码等)的通用工具。 是一个Java类库。

FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序,将视图从业务逻辑中抽离处理, 业务中不再包括视图的展示,而是将视图交给 FreeMarker 来输出。虽然 FreeMarker 具有一些编程的能力,但通常 由 Java 程序准备要显示的数据,由 FreeMarker 生成页面。通过模板显示准备的数据(如图):

需要注意:

FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组
FreeMarker与容器无关,因为它并不知道HTTP或Servlet。FreeMarker同样可以应用于非Web应用程序环境
FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库。
Freemarker环境搭建

${变量} 表达式
后端返回数据Model

request.setAttribute("msg","hello word");

页面使用 ${} 语法

<h1>${msg}</h1>

渲染后显示

hello word

freemarker数据类型
freemarker模板中的数据类型主要由如下几种:

布尔型:等价于 Java 的 Boolean 类型,不同的是不能直接输出,可转换为字符串输出

日期型:等价于 java 的 Date 类型,不同的是不能直接输出,需要转换成字符串再输出

数值型:等价于 java 中的 int,float,double 等数值类型 有三种显示形式:数值型(默认)、货币型、百分比型

字符型:等价于 java 中的字符串,有很多内置函数

sequence 类型:等价于 java 中的数组,list,set 等集合类型

hash 类型:等价于 java 中的 Map 类型

布尔型
数据

request.setAttribute("flag", true);

获取

// 方式一
${flag?c}
 
// 方式二 
${flag?string}
 
// 方式三
${flag?string("yes","no")}

这里用到的是freemarker的内置函数,如 ?c 和 ?string,前面说到了,布尔型的数据是不能直接输出的,需要对其进行转换,转换为字符串才能正常输出。所以 ?c 和 ?string都是把其它类型转换为字符串类型的内置函数。
› Continue reading

Tags:

freemarker循环、日期格式化、常用汇总

星期六, 八月 15th, 2020 | JAVA-and-J2EE, spring-boot | 2 Comments

首先权威地址官方地址:https://freemarker.apache.org/

中文版使用手册地址:http://freemarker.foofun.cn/toc.html

1.日期格式及解决日期为NULL报错的写法

${(user.birthday?string("yyyy-MM-dd"))!}
 
//--或者--
${(user.birthday?string("yyyy-MM-dd"))!'--'}

2.判断对象是否存在再进行操作

<#if user?? >「${user.name }<#else></#if>

3.循环及计数使用

<#list listUser as user>
	<#if user?? >「${user.name }<#else></#if>
	<#if user?counter gt 3 >
	 ${user.email}
	</#if>
</#if>

Tags:

springboot升级到2.2.4版本freemarker出现404

星期日, 一月 26th, 2020 | JAVA-and-J2EE | 没有评论

今天看到spring mvc 有漏洞提醒升级,就把spring boot从2.1.4版本升级到2.2.4版本

github警告 springmvc 5.0系列5.0.16以下 5.1系列5.1.13以下,5.2系列5.2.3以下,springboot 2.2.4以下都有安全漏洞

换了后没有发现编译错误,启动后试了下,发现页面都是404了,网上查了下,是FreeMarkerViewResolver的缺省配置文件

改了suffix 由原来的ftl 改成ftlh了,详情可以参见源码,现记下处理方式:

1.改原来的ftl文件扩展名ftl改成ftlh 可以解决(对于老工程不适合)

2.修改application.properties 文件

#spring
spring.freemarker.suffix=.ftl
 
更多其他配置:
spring.freemarker.cache=false
spring.freemarker.suffix=.ftl
spring.freemarker.templateLoaderPath=classpath:/templates/
spring.resources.static-locations=classpath:/static/

› Continue reading

Tags: ,

freemarker2.3.14 down 下载和对应的api

星期五, 十一月 28th, 2008 | JAVA-and-J2EE | 没有评论

看到好的搜索直接搜到自己的blog,我只是提供了个对应的api地址,现也把要下载的文件放到上面去

官方下载地址:freemarker2.3.14 down

官方api:freemarker2.3.14 api

本站提供的下载:freemarker-2314tar

Tags: ,

Search

文章分类

Links

Meta