Velocity(4)——引入指令和#Parse 指令

#Include和#Parse都是用于将本地文件引入当前文件的指令,而且被引入的文件必须位于TEMPLATE_ROOT。这两者之间有一些区别。

#Include

被#Include引入的文件,其内容不会被Velocity引擎解析,所以这些文件应该是静态模板,即不含有VTL的模板。使用#Include()指令时,参数是被双引号括起来的文件名或者是表示文件名的变量。如果有多个文件,以逗号隔开即可。比如#Include("a.gif", "b.html", $file)。

#Parse

#Parse用来在当前模板中引入并执行另一个(本地的)模板——可以是静态的,也可以是动态的——并把结果嵌入到当前位置。#Parse()指令的参数,可以是一个双引号括起来的文件名,也可以是一个变量,但是它不能接受多个参数。

被#Parse引入的文件仍然可以使用#Parse指令。在velocity.properties文件中有一个属性directive.parse.max.depth,默认值是10,它指定了#Parse嵌套的最大层次。既然#Parse嵌套是允许的,#Parse递归也是允许的。

假如a.vm #Parse b.vm,那么a.vm中定义的变量$v,在b.vm中可以随便使用。如果b.vm也定义了$v,那么b.vm中用到的将会是自己的$v,而不是a.vm中的$v。

#Stop

#Stop指令会停止模板引擎的执行,并返回。这在debug中比较有用。

时间: 2024-11-09 02:56:29

Velocity(4)——引入指令和#Parse 指令的相关文章

Velocity(8)——引入指令和#Stop指令

#Include和#Parse都是用于将本地文件引入当前文件的指令,而且被引入的文件必须位于TEMPLATE_ROOT.这两者之间有一些区别. #Include 被#Include引入的文件,其内容不会被Velocity引擎解析,所以这些文件应该是静态模板,即不含有VTL的模板.使用#Include()指令时,参数是被双引号括起来的文件名或者是表示文件名的变量.如果有多个文件,以逗号隔开即可.比如#Include("a.gif", "b.html", $file).

五、案例-指令参考-freemarker指令、表达式

案例-指令参考描述:本人自己测试写了一遍,如有错的地方,懂freemarker的朋友望指点指点! 案例-指令参考 表达式 一. Assign 1.<#assign name1="北京" name2="上海" name3="广东"> 调用:${name1}.${name2}.${name3} 2.<#assign name1> 消息模拟.. </#assign> 调用:${name1} 3.<#assign

Angular中的内置指令和自定义指令

NG中的指令,到底是什么(what)? 为什么会有(why)?以及怎样使用(how)? What: 在NG中,指令扩展HTML功能,为 DOM 元素调用方法.定义行为绑定数据等. Why: 最大程度减少DOM操作,实现数据绑定,与业务逻辑进行交互. How: 指令主要分为两种:内置指令和自定义指令,通过下面的例子,简单记录一下如何去使用. 内置指令 在官方API文档上罗列了很多指令,内置指令可以分为:普通指令 和 事件指令,他们都是作用于HTML之上的,通过添加属性的方式来实现的.简单看一下一些

前端Vue框架 02 斗篷指令:v-cloak, 指令: 属性指令:v-bind, 表单指令:v-model, 条件指令:v-show v-if, 循环指令:v-for

1.斗篷指令(了解) """ v-cloak:避免屏幕闪烁 1)属性选择器,会将v-cloak属性所在的标签隐藏 2)当vue环境加载后,会将v-cloak属性解析移除,所以内容{{ num }}就会显示出来 3)而现在vue已经准备完毕,所以用户会直接看到数值10,而不会看到 页面从{{ num }}闪烁成数值10 """ <style> [v-cloak] { display: none; } </style> <

Angular 2 属性指令 vs 结构指令

Angular 2 的指令有以下三种: 组件(Component directive):用于构建UI组件,继承于 Directive 类 属性指令(Attribute directive):  用于改变组件的外观或行为 结构指令(Structural directive):  用于动态添加或删除DOM元素来改变DOM布局 组件 import { Component } from '@angular/core'; @Component({       selector: 'my-app', // 

Atitit..net&#160;clr&#160;il指令集&#160;以及指令分类&#160;&#160;与指令详细说明

Atitit..net clr il指令集 以及指令分类  与指令详细说明 1.1. .NET CLR 和 Java VM 都是堆叠式虚拟机器(Stack-Based VM), 1 1.2. 查看工具ILDASM1 1.3. 此程式执行时,关键的记忆体有三种,分別是:1 1.4. Il指令集2 1.4.1. Mov指令3 1.4.2.  跳转指令集合6 1.4.3.  算术 逻辑 与移位指令8 1.4.4. 类型转换9 1.4.5. Other  and oo指令10 2. 参考12 1.1. 

Atitit.java&#160;虚拟机的构成&#160;与指令分类&#160;与&#160;指令集合&#160;以及字节码查看工具javjap

Atitit.java 虚拟机的构成 与指令分类 与 指令集合 以及字节码查看工具javjap 1.1. 虚拟机的构成 java虚拟机--处理器.堆栈.寄存器.指令系统. 1 1.2. 虚拟机执行过程1 1.3. 约有250个指令2 2. JVM指令助记符 分类2 2.1. 变量到操作数栈:2 2.2. 算数指令3 2.3. 移位指令3 2.4. 逻辑指令4 2.5. 流程跳转指令4 2.6. Oo指令4 2.7. 运算指令 5 3. 查看指令反编译工具6 3.1.   分析java语言特性的一

int指令(软件中断指令)

INT(软件中断指令)是CALL指令的一种特殊形式.call指令调用调用的子程序是用户程序的一部分,而INT指令调用的操作系统提供的子程序或者其他特殊的子程序. 中断服务子程序和标准过程的最大区别是 汇编程序可以有任意个过程,中断服务子程序最多有256个过程. INT指令共有四中不同的格式: <1>  int n n是中断号,这就允许用户程序调用256个中断服务子程序. 该指令2字节长度,第一字节是int机器码,第二字节是8位立即数,表示中断号. CPU在执行到INT指令时,通过中断描述符表找

JSP中的编译指令和动作指令的区别

JSP中的编译指令和动作指令的区别 1.编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的脚本动作 2.编译指令是在将JSP编译成Servlet时起作用,而动作指令可替换成JSP脚本,是JSP脚本标准化写法