FreeMarker入门知识点有哪些

发布时间:2022-01-19 16:12:12 作者:iii
来源:亿速云 阅读:295

本文小编为大家详细介绍“FreeMarker入门知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“FreeMarker入门知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

FreeMarker是一款基于java的模版引擎,用于生成文本(比如HTML)。它的语法和作用和JSP类似,JSP需要依赖Servlet容器(如Tomcat),而FreeMarker只需要Java运行环境。

官方网站上的这张图很形象的说明了FreeMarker的用途和工作原理:模版+数据=文本(HTML)

FreeMarker入门知识点有哪些

在Jspxcms中,模版就是/template/1/default/目录下的模版文件(后缀也是.html),数据来自SpringMVC Controller的Model.addAttribute(String name, Object value)或者Jspxcms自定义标签(如:[@InfoList node='news';list]...[/@InfoList])。

更多资料可以参考FreeMarker官方网站的文档,FreeMarker官方还提供了FreeMarker中文文档。

表达式

和JSP的EL表达式基本是一样的:${myname},${user.username}。

内建函数(Built-in)

内建函数是FreeMarker的一大优势,很多在JSP里面需要通过复杂处理才能实现的功能,这里只需要用简单的内建函数就搞定了。

标签(Directive)

FreeMarker标签类似JSP标签。标签默认使用尖括号< >,在Jspxcms中为了避免和HTML标签混淆,便于在Dreamweaver中编辑,使用中括号[ ]作为标签符号。以下示例一律使用中括号。

标签有两种,一种是系统自带标签,以[#开头;一种是自定义标签,以[@开头。

注释标签:[#-- 这是需要注释的代码 --]

自定义标签

以InfoList标签为例说明。

[@InfoList node='news';infos]
    [#list infos as info]
        <a href="${info.url}">${info.title}</a>
    [/#list]
[/@InfoList]

[@InfoList node='news';list]
    [#list list as bean]
        <a href="${bean.url}">${bean.title}</a>
    [/#list]
[/@InfoList]

[@InfoList;list]
    [#list list as bean]
        <a href="${bean.url}">${bean.title}</a>
    [/#list]
[/@InfoList]

if(判断标签)

[#if 2>1]
  ...
[#elseif username=="abc"]
  ...
[#elseif username?starts_with("red")]
  ...
[#else]
  ...
[/#if]

判断是否为null:[#if username??]...[/#if]

list(列表标签)

[#list sequence as item]
    ...
[/#list]

[#list 1..10 as i]
    ...
[/#list]

break(跳出标签)

[#list seq as x]
    ${x}
    [#if x = "spring"][#break][/#if]
[/#list]

include(包含标签)

[#include "/common/copyright.ftl"]
[#include "/common/navbar.html" parse=false /]

assign(定义变量标签)

[#assign myname="abc"]
[#assign myname=username]
[#assign myname]孔子[/#assign]

escape(转义标签)

为了避免跨站脚本攻击(XSS),通常会对输出的内容做HTML转义,比如${foo?html}。但是所有变量都要做这个转义不仅麻烦,还容易遗忘。另外FreeMarker空值处理也很麻烦且容易遗忘,比如${foo!}、${(user.username)!}。

使用excape标签可以很好的解决这个问题。

[#escape x as (x)!?html]
    ...
    ${user.username}
    ...
[/#escape]

只要被这个标签包含的代码,都相当于加上了${(foo.bar)!?html},如${user.username}相当于${(user.username)!?html}。即包含了空值处理,也包含了HTML转义处理。

noescape(不转义标签)

在escape标签内有对象不需要转义时,可以用noescape标签。

[#escape x as (x)!?html]
    ...
    [#noescape]${text}[/#noescape]
    ...
[/#escape]

读到这里,这篇“FreeMarker入门知识点有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. Redux入门知识点有哪些
  2. python入门知识点有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

freemarker

上一篇:Jspxcms开发环境如何搭建

下一篇:InfoPage标签怎么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》