专栏首页前端技术开发freemarker常用的方法

freemarker常用的方法

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

 整理一些常用的方法

数据遍历

通过freemarker提供的遍历方法list,users就是要遍历的对象,user遍历之后返回的值

假设 users 包含 ['Joe', 'Kate', 'Fred'] 序列:

<#list users as user>
  <p>${user}
</#list>

<#list>必须要按照这样的格式去书写 

如果想取值的限制,比如取前五个那就是对 users[0..4],和数组一样,都是从0开始的

判断条件  

freemarker也提供的有对条件的判断和原生的js差不多,都是通过if else 去判断

<#if condition>
  ...
<#elseif condition2>
  ...
<#elseif condition3>
  ...
...
<#else>
  ...
</#if>
condition, condition2, 等:将被计算成布尔值的表达式。

创建变量

freemarker为了方便存储一个变量,也给我们提提供了一个变量的方法,

<#assign name1=value1 name2=value2 ... nameN=valueN>

name:变量的名字。 它不是表达式。而它可以写作是字符串,如果变量名包含保留字符这是很有用的, 比如 <#assign "foo-bar" = 1>。 value就是值;

案例

通过实现以一个,让你理解这个方法的用法

<#if ( (Hotwz??) && (Hotwz?size>0))>
                <#list Hotwz[0..2] as HotwzList>
                    <#list HotwzList.coverImagesList[0..0] as Attach>
                        <#if ( (Attach??) && (Attach?size> 0))>
                            <a href="https://dxshare.dianzhenkeji.com/recommend/article/1/${HotwzList.articleId}"
                                class="recommand_list">
                                <div class="news_desc">
                                    <div class="title"> ${HotwzList.contentTitle} </div>
                                    <div class="desc"> <span>${HotwzList.articleOrigin} |</span>
                                        <span>${HotwzList.publishTime?date}</span> </div>
                                </div>
                                <div class="news_img"> <img src="${Attach.url}" alt="">
                                </div>
                            </a>

                        </#if>
                    </#list>

                </#list>
                <#else>
            </#if>

其中Hotwz就是要遍历的对象,判断if条件然后取前三个,(Attach??) && (Attach?size> 0)  是来判断是否有值,长度是的大于0,满足这两个条件,才执行${HotwzList.contentTitle},然后就是取值,必须${}这种格式取值,contentTitle自己在后台定义的字段名称

以上都是在网页中常用的方式,如果想了解更多,可以取参考http://freemarker.foofun.cn/toc.html官网

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DOM节点删除之empty和remove区别

    要移除页面上节点是开发者常见的操作,jQuery提供了几种不同的方法用来处理这个问题,这里我们开仔细了解下empty和remove方法

    小周sri的码农
  • 小程序实现图片上传,预览以及图片base64位处理

    最近一段时间在做小程序项目,第一期功也完工了。需要好好总结一下经验,把项目中遇到的问题好好总结一下,遇到的问题,踩过的坑。今天写一个小程序实现图片上传,预览,以...

    小周sri的码农
  • 深入理解面向对象中的原始类型和引用类型

    我们先前学过的数据类型可以划分成两类:原始类型和引用类型。原始类型的数据都是一些比较简单数据,比如字符串,数字等。引用类型的数据稍微复杂一点,比如对象。

    小周sri的码农
  • SAP ABAP Netweaver里进程能够申请的最大内存

    There is a corresponding ST22 dump in the backend:

    Jerry Wang
  • 谁才是春节红包大战的终极赢家?

    春节期间的红包大战或许是今年互联网行业最热闹的事情了。除了传统的微信和支付宝的两强相争,今年春节又有了百度、今日头条等新的入局者的加入。同红包大战刚刚兴起之时不...

    孟永辉
  • 一种在注入进程中使用WTL创建无焦点不在任务栏出现“吸附”窗口的方法和思路

            最近一直在做沙箱项目,在项目快接近结尾的时候,我想给在我们沙箱中运行的程序界面打上一个标记——标识其在我们沙箱中运行的。我大致想法是:在被注入程...

    方亮
  • 打破 iframe 安全限制的 3 种方案

    关注「前端向后」微信公众号,你将收获一系列「用心原创」的高质量技术文章,主题包括但不限于前端、Node.js以及服务端技术

    ayqy贾杰
  • 使用innobackupex进行mysql备份

    说明: 使用xtrabackup进行备份需要使用mysql用户,该用户需要有备份的权限。

    阿dai学长
  • JS的一些技巧

    根据当前文字选择返回 TextRange 对象,或根据控件选择返回 ControlRange 对象。

    用户1437675
  • Minifilter的动态安装、加载及卸载

    MINIFILTER框架的文件系统过滤驱动,无法使用的CreateService和OpenService进行动态加载。 看了一下,使用Inf文件安装Minif...

    战神伽罗

扫码关注云+社区

领取腾讯云代金券