lib/my_test.ftl 模板内容如下:

<#macto copyright date>

  <p>Copyright (C)${date}Julia Smith.All rights reserved.</p>

</#macro>

<#assign mail = "jsmith@acme.com">

假设想在aWebPage.ftl 中使用这个模板.

如果使用

<#include "/lib/my_test.ftl">

会在主命名空间中创建两个变量. 如果再引入同名的变量时就会被后引入的或者新定义的覆盖.这样就不是很好,因为只想让它们在"My Test Library"命名空间中.就需要用 import代替include了

<#import "lib/my_test.ftl" as my>

它会为lib/my_test.ftl创建一个新的哈希表变量,就是空的命名空间my,如果在主命名空间有一个变量,名为mail 或者 copyright,就不会引起混乱,因为两个模板使用了不同的命名空间.

如果 在lib/my_test.ftl 中修改 copyright 如下

<#macro copyright date>   <p>Copyright (C) ${date} Julia Smith. All rights reserved.   <br>Email: ${mail}</p> </#macro>

然后修改aWebPage,ftl中的内容如下

<#import "/lib/my_test.ftl" as my> <#assign mail="fred@acme.com"> <@my.copyright date="1999-2002"/> ${my.mail} ${mail}

输入为

<p>Copyright (C) 1999-2002 Julia Smith.All rights reserved.

  <br>Email :jsmith@acme.com

</p>

jsmith@acme.com

fred@acme.com

以上说明可能不太好理解  在其他博客上看到一看即懂得解析 摘录再次 方便查看

问题显示:

在inc1.ftl与inc2.ftl中的内容分别是:

<#assign username="刘德华">与<#assign username="张学友">

接着我在hello.ftl模版中用include将inc1.ftl包含进来

<#include "/inc/inc1.ftl">
${username}

此刻获取的结果是:刘德华

接着我们在hello.ftl用include将inc1.ftl与inc2.ftl同时进行包含进来

<#include "/inc/inc1.ftl">
<#include "/inc/inc2.ftl">
${username}

此刻获取的值是:张学友

总结:出现这种情况,在两个模版中都分别存在变量名都相同的变量的时候,include包含进来,会进行覆盖,include只时候将其公共的静态文件进行包含,而里面不涉及到内部函数以及变量声明之类的,当涉及到这种问题,我们就要用import进行导入

最新文章

  1. ffmpeg-20160508-git-bin-v2
  2. haproxy 安装 各个参数的测试
  3. 获得H.264视频分辨率的方法
  4. Python打包成exe程序
  5. UITextField 基本属性使用
  6. canvas &amp; animation
  7. [selenium webdriver Java]显示的等待同步
  8. 【BZOJ4327】JSOI2012 玄武密码 AC自动机
  9. orcad10.5启动加速
  10. 组合模式(Composite)
  11. Android Wear开发
  12. CSS中的背景、雪碧图、超链接的伪类样式
  13. linux内核开发入门学习
  14. vue新建移动端项目模板
  15. 005_解决pip国外安装源慢的问题
  16. 关于MySQL数据库——增删改查语句集锦
  17. SQL Server索引误区使用建议
  18. 理解java的三大特性之继承
  19. 前端入门应该掌握的html+css知识点
  20. C++进阶小结

热门文章

  1. 〖C语言〗C语言一个函数传递无限制多参数(不确定参数函数)的方法
  2. 后台管理-基于 Bootstrap 开发的网站后台管理面板
  3. 请介绍WCF服务
  4. 常用的SQL
  5. webpack One CLI for webpack must be installed. These are recommended choices, delivered as separate(webpack报错)
  6. 逆向project第005篇:跨越CM4验证机制的鸿沟(下)
  7. node.js 连接 mysql
  8. 大数据学习之Scala中main函数的分析以及基本规则(2)
  9. List&lt;T&gt;做数据源绑定的问题
  10. PHPStorm 10 激活