- 浏览: 26819 次
- 性别:
- 来自: 杭州
最新评论
1.方法当作参数化
当使用引用作为参数传递给Velocity宏,请注意引用是按名字使用。意味着他们的值是在Velocity宏中每一次的引用都是重新生成的。这个特点允许你传入一个对方法的引用,并且在宏中的每一次引用都调用该方法一次。作为一个例子,下面的代码展示了这一点:
#macro( callme $a )
$a
$a
$a
#end
#callme( $foo.bar() )
在callme宏中,方法引用$foo.bar()实际上被调用了三次。results in the method bar() of the reference $foo being called 3 times.
初次接触该特性,会感到一些惊讶,但当你比较深入的思考Velocity宏的最初的动机的时候------减少在VTL中对于重复代码的剪切/复制操作。
如果你不需要这种特性,那么你可以总是把方法的值传递给一个变量引用,再把该引用作为参数传递给方法,如下面的例子所示:
#set( $myval = $foo.bar() )
#callme( $myval )
2.宏加载的顺序
velocity加载的时候是每次访问一个页面,发现这个页面有宏的时候,就把这个页面所有的宏load到服务器中,不是一开始就加载所有的宏,然后下次再访问其它页面的时候,发现如果存在同样名称和参数的宏,那么它不会再加载这个宏到服务器中,所以下次其它页面用到的宏都是第一次加载进来的名称相同的那个宏,后面名称相同的都不会再加载进来。
发表评论
-
spring bean初始化
2015-05-20 17:51 4871.配置文件中每一个<bean>解析成一个Bean ... -
java 基本类型存储解析
2012-07-11 12:53 998byte b=-128; byte b=127; 都是可以编 ... -
nio
2012-01-31 16:57 813原来的I/O包和NIO处理数据最大的不同之处在于数据打 ... -
null
2012-01-30 17:34 564null可以转换成任何类的对象 -
java 线程的几个方法
2012-01-17 15:39 1002Thread的方法 sleep() 1. sleep ()函 ... -
java 线程
2012-01-17 14:37 740现在的系统的都是分时系统,达到多进程的效果。cpu只是将时间 ... -
java 访问修饰符
2012-01-12 10:34 732对于类成员(字段和方法)的访问权限来说, public:所有类 ... -
设计模式初学
2012-01-10 17:39 691代理模式只是原来对象的一个替身(原来对象约束了代理的行为) ... -
jndi学习
2012-05-26 19:10 724jndi--命名和目录服务api 用于查找远程的资源,例如 ... -
java 泛型学习--类型擦除
2011-12-26 17:58 1733类型擦除(type erasure)。 Java中的泛型基本上 ... -
java 泛型学习--泛型方法
2011-12-26 17:30 951通过在类的定义中添加 ... -
java 泛型学习--类型通配符
2011-12-26 17:17 894假设您具有该方法: void printList(Lis ... -
java 泛型学习
2011-12-26 16:42 775除了异常类型、枚举或匿名内部类以外,任何类都可以具有类型参数。 ... -
servlet path学习
2011-12-22 15:40 952servlet path就是取从context path后开始 ... -
log4j 学习
2011-12-16 11:01 952Log4j除了可以记录程序 ... -
java 可变长参数
2011-12-15 15:15 336[size=x-large] java 的可变长参数 例如: ... -
java垃圾回收
2011-12-12 19:16 644Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现 ... -
velocity性能优化
2011-12-09 11:16 9501.char to byte 字符转变字节,流用字节去输出 ... -
ThreadLocal
2011-11-10 14:48 687每个线程有一个ThreadLocalMap对象,这是一个Map ... -
struts2 Codebehind Plugin
2011-11-08 15:32 3281.为未定义的action指定mapping When no ...
相关推荐
3. **Velocimacro**:Velocity宏,是一种可重用的模板片段,可以提高模板的复用性和可维护性。 4. **Directives**:控制流指令,如#if、#foreach等,用于在模板中实现条件判断和循环。 五、 Velocity-1.6.zip内容...
4. **宏**:Velocity 宏是一种可重用的模板片段,可以封装复杂逻辑或重复结构。使用 `#macro` 定义宏,然后通过 `#invoke` 调用。这有助于提高代码复用性和可维护性。 5. **上下文(Context)**:Velocity 模板与 ...
5. **宏(Macro)**:Velocity 宏类似于函数,可以封装重复的模板代码,提高代码复用性。 6. **分离关注点**:Velocity 有助于实现MVC中的视图层与控制器层的分离,使开发者更专注于页面展示,而不是页面渲染的细节...
在这个示例中,我们将深入理解如何在 Velocity 模板中实现分页宏。 分页宏的主要目的是展示数据的多个页面链接,让用户能够轻松浏览不同页的数据。在给定的代码中,`#macro(pager $url $pager)` 定义了一个名为 `...
#### 七、Velocity 宏 - **宏定义** - 宏允许封装重复使用的代码片段。 - 示例定义宏 `#macro(greeting $name)` ```velocity Hello, $name! #end ``` - 调用宏:`#greeting("Velocity")` - **宏参数** - 宏...
在这个版本中,Velocity提供了基本的模板引擎功能,包括变量替换、控制结构(如if、for、foreach)以及宏定义等。它支持JavaBean和Map对象的直接引用,并且通过Action接口可以方便地进行用户自定义操作。此外,...
4. **宏**:Velocity支持宏定义,宏类似于函数,可以在模板中重复使用,提高代码复用性。 5. **事件驱动的处理机制**:Velocity 提供了一套事件驱动的处理机制,允许用户自定义处理器对模板进行预处理或后处理,如...
5. **宏库支持**:Velocity支持宏定义,插件可以帮助开发者管理和重用这些宏,提高代码复用率。 要安装Eclipse中的Velocity插件,你可以按照以下步骤操作: 1. 打开Eclipse,选择菜单栏的“Help” -> “Eclipse ...
- **Velocity**也有类似的宏定义`#macro(name param1 param2) ... #end`,但功能相对有限。 5. **转义**: - **FreeMarker**内置了多种转义功能,比如HTML转义、XML转义等,可以通过简单的指令实现。 - **...
4. **宏**:Velocity 支持宏定义,类似于 HTML 中的自定义标签,可以复用和封装代码,增强模板的模块化。 5. **指令集**:Velocity 提供了多种内置指令,如 #if, #foreach, #set 等,用于控制流程和处理数据。 ** ...
4. 宏:定义可复用的代码块称为宏,可以通过`#macro`指令定义,通过`#end`指令结束。 #### velocity.properties配置文件 velocity.properties是Velocity的配置文件,用于设置Velocity运行时的各种属性,比如模板...
3. **宏定义与调用**:Velocity支持宏,类似于函数,可以重复使用一段模板代码。通过`#macro`定义宏,`#invoke`或`#m`调用宏。 4. **内置方法**:Velocity提供了一些内置的方法,如`escape()`用于转义特殊字符,`...
文档是velocity基本知识,语法运用,宏定义等,适合新手入门
- **优势**:Velocity的语法简洁,易于学习,支持宏定义,可以进行复杂的逻辑控制。由于它不直接暴露Java代码,使得模板更加安全,不容易引发编程错误。 - **应用场景**:Velocity常用于Web应用、邮件模板、文档...
- 使用`#macro`定义宏,可重用代码片段。 - 注意模板的可读性和可维护性。 这个压缩包提供的资料应该涵盖了Velocity的基础和进阶知识,对于想要学习或提升Velocity技能的开发者来说,是一份宝贵的资源。通过深入...
6. **可扩展性**:Velocity允许自定义宏库和工具,进一步扩展其功能。 ### 使用示例 在Velocity模板中,我们可以通过以下方式引用Java对象: ```html <h1>Welcome, $user.name! ``` 在这个例子中,`$user.name`...
宏是Velocity的一个强大特性,它可以封装重复使用的代码片段。宏定义类似于函数,可以在模板中多次调用,提高代码复用性。例如: ```html #macro (displayPerson $person) <p>Name: $person.name, Age: $person....
4. 利用Velocity提供的宏(macro)功能,可以创建可重用的代码片段,提高模板的复用性。 5. 调试和错误处理:使用Velocity的`#debug`指令可以帮助调试模板,查看变量的状态和执行流程。 ** 学习资源 ** 提供的...
3. **宏库**:宏是Velocity的一个强大特性,可以定义复用的模板片段,方便代码组织和维护。 4. **上下文管理**:如何在上下文中添加、删除或修改对象,以及如何在模板中访问这些对象。 5. **工具引用**:Velocity...
- `#macro()`:定义宏,可重用的代码块。 - `#include()`:包含其他模板文件。 ### 3. Velocity上下文(Context) 上下文是Velocity中数据传输的核心,它负责在模板和Java后端之间传递信息。你可以向Context中添加...