摘要:FreeMarker会有多种应用场景: 1、常规的用法,就是传入一段字符串,进行数据渲染,然后返回一段字符串; 2、也会出现 “从文件读取模版”的需求(比如:我们的.ftl前端界面)。 FreeMarker是自带缓存设计的,一个Configuration,可以同时使用 “字符串模版” 和 “文件模版
阅读全文
摘要:Include和Import都可以在当前的文件中,导入其它的模版文件 区别: - Include可以显示被包含文件中的内容,被包含的文件适用于封装页面的公用部分(导航栏什么的) - Import不会将被包含的文件内容显示出来,被包含的文件适用于封装函数。 Include直接将外部文件插入到当前位置,
阅读全文
摘要:虽然说这些是内置对象,但是和jsp中的request是完全不一样的,只能用于取值 ${Request.attributeName} Request: 用于获取Request对象中的attribute对象。 Session:用于获取Session 对象中的attribute对象。 Applicatio
阅读全文
摘要:在不做任何处理的情况下,往页面传一串Html代码,它会嵌套到页面代码中,一起被编译并且显示。 比如:某个用户把自己的用户名写成a标签,最后显示出来的用户名就是一个超链接 例: //传递的参数 map.put("sp6", "这是一段带有攻击性的字符串<a href='https://www.baid
阅读全文
摘要:全局配置基本与有关freemarker.template.Configuration相关。 /** * 较通用的FreeMarkers工具类 * * @author ChenSS 2017-10-19 * @date 2020-12-21 Mr.css 尝试使用ClassForTemplateLoa
阅读全文
摘要:宏和函数的异同: 宏指的是<#macro>,函数指的是<#function>,都允许设置参数,内部可以包含流程控制语句。 区别如下: 宏内部的Html代码会直接显示在页面上,更适合用来封装一些页面组件,宏不允许有返回值,如果设置返回值,将直接报错。 函数用来写一些仅用于计算的代码块,内部即便写了Ht
阅读全文
摘要:For循环 在FreeMarker中没有For循环,但是可以使用<#list>标签简单地实现一下 //需要注意开闭原则,1..5实际就是表次1-5,一共循环5次 <#list 1..5 as t> ${t}:For循环这么写 </#list> If…Else语法 <#assign xNum = 30
阅读全文
摘要:在FreeMarker语法中,可以使用<#assign>创建一个数组、List或者Map,但是通过<#assign>创建出来的这些数组、List或者Map,不具备Java代码中对象的其它特征。 以Map为例,Java对象可以有isEmpty()方法,但是通过<#assign>创建的map不具有这个方
阅读全文
摘要:直接在SpringMVC的Xml配置文件中做如下配置即可: <!--FreeMarker配置 --> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property nam
阅读全文
摘要:一、字符串 1、常用变量 ${emp.name?if_exists} // 变量存在,输出该变量,否则不输出 ${emp.name!} // 变量存在,输出该变量,否则不输出 ${emp.name?default("xxx")} // 变量不存在,取默认值xxx ${emp.name!"xxx"}
阅读全文