`
chenk008
  • 浏览: 26819 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

velocity 宏

    博客分类:
  • java
 
阅读更多

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到服务器中,不是一开始就加载所有的宏,然后下次再访问其它页面的时候,发现如果存在同样名称和参数的宏,那么它不会再加载这个宏到服务器中,所以下次其它页面用到的宏都是第一次加载进来的名称相同的那个宏,后面名称相同的都不会再加载进来。
分享到:
评论

相关推荐

    velocity-1.6.zip

    3. **Velocimacro**:Velocity宏,是一种可重用的模板片段,可以提高模板的复用性和可维护性。 4. **Directives**:控制流指令,如#if、#foreach等,用于在模板中实现条件判断和循环。 五、 Velocity-1.6.zip内容...

    velocity 测试代码

    4. **宏**:Velocity 宏是一种可重用的模板片段,可以封装复杂逻辑或重复结构。使用 `#macro` 定义宏,然后通过 `#invoke` 调用。这有助于提高代码复用性和可维护性。 5. **上下文(Context)**:Velocity 模板与 ...

    Struts2 与 Velocity 实例

    5. **宏(Macro)**:Velocity 宏类似于函数,可以封装重复的模板代码,提高代码复用性。 6. **分离关注点**:Velocity 有助于实现MVC中的视图层与控制器层的分离,使开发者更专注于页面展示,而不是页面渲染的细节...

    Java web velocity分页宏示例

    在这个示例中,我们将深入理解如何在 Velocity 模板中实现分页宏。 分页宏的主要目的是展示数据的多个页面链接,让用户能够轻松浏览不同页的数据。在给定的代码中,`#macro(pager $url $pager)` 定义了一个名为 `...

    邮件模版 velocity

    #### 七、Velocity 宏 - **宏定义** - 宏允许封装重复使用的代码片段。 - 示例定义宏 `#macro(greeting $name)` ```velocity Hello, $name! #end ``` - 调用宏:`#greeting("Velocity")` - **宏参数** - 宏...

    velocity-1.5.jar,velocity-1.6.2-dep.jar,velocity-tools-1.3.jar

    在这个版本中,Velocity提供了基本的模板引擎功能,包括变量替换、控制结构(如if、for、foreach)以及宏定义等。它支持JavaBean和Map对象的直接引用,并且通过Action接口可以方便地进行用户自定义操作。此外,...

    velocity的jar包

    4. **宏**:Velocity支持宏定义,宏类似于函数,可以在模板中重复使用,提高代码复用性。 5. **事件驱动的处理机制**:Velocity 提供了一套事件驱动的处理机制,允许用户自定义处理器对模板进行预处理或后处理,如...

    eclipse中velocity插件

    5. **宏库支持**:Velocity支持宏定义,插件可以帮助开发者管理和重用这些宏,提高代码复用率。 要安装Eclipse中的Velocity插件,你可以按照以下步骤操作: 1. 打开Eclipse,选择菜单栏的“Help” -> “Eclipse ...

    Velocity 和 FreeMarker区别

    - **Velocity**也有类似的宏定义`#macro(name param1 param2) ... #end`,但功能相对有限。 5. **转义**: - **FreeMarker**内置了多种转义功能,比如HTML转义、XML转义等,可以通过简单的指令实现。 - **...

    velocity文档(Velocity1.4java开发指南中文版,Velocity1.4模板使用指南中文版中文版)

    4. **宏**:Velocity 支持宏定义,类似于 HTML 中的自定义标签,可以复用和封装代码,增强模板的模块化。 5. **指令集**:Velocity 提供了多种内置指令,如 #if, #foreach, #set 等,用于控制流程和处理数据。 ** ...

    velocity入门使用教程

    4. 宏:定义可复用的代码块称为宏,可以通过`#macro`指令定义,通过`#end`指令结束。 #### velocity.properties配置文件 velocity.properties是Velocity的配置文件,用于设置Velocity运行时的各种属性,比如模板...

    velocity document

    3. **宏定义与调用**:Velocity支持宏,类似于函数,可以重复使用一段模板代码。通过`#macro`定义宏,`#invoke`或`#m`调用宏。 4. **内置方法**:Velocity提供了一些内置的方法,如`escape()`用于转义特殊字符,`...

    velocity新手入门

    文档是velocity基本知识,语法运用,宏定义等,适合新手入门

    velocity和freemarker的比较

    - **优势**:Velocity的语法简洁,易于学习,支持宏定义,可以进行复杂的逻辑控制。由于它不直接暴露Java代码,使得模板更加安全,不容易引发编程错误。 - **应用场景**:Velocity常用于Web应用、邮件模板、文档...

    velocity的学习资料

    - 使用`#macro`定义宏,可重用代码片段。 - 注意模板的可读性和可维护性。 这个压缩包提供的资料应该涵盖了Velocity的基础和进阶知识,对于想要学习或提升Velocity技能的开发者来说,是一份宝贵的资源。通过深入...

    Velocity

    6. **可扩展性**:Velocity允许自定义宏库和工具,进一步扩展其功能。 ### 使用示例 在Velocity模板中,我们可以通过以下方式引用Java对象: ```html <h1>Welcome, $user.name! ``` 在这个例子中,`$user.name`...

    Velocity脚本简明教程

    宏是Velocity的一个强大特性,它可以封装重复使用的代码片段。宏定义类似于函数,可以在模板中多次调用,提高代码复用性。例如: ```html #macro (displayPerson $person) <p>Name: $person.name, Age: $person....

    JAVA的Velocity语法学习

    4. 利用Velocity提供的宏(macro)功能,可以创建可重用的代码片段,提高模板的复用性。 5. 调试和错误处理:使用Velocity的`#debug`指令可以帮助调试模板,查看变量的状态和执行流程。 ** 学习资源 ** 提供的...

    apache velocity介绍及资料

    3. **宏库**:宏是Velocity的一个强大特性,可以定义复用的模板片段,方便代码组织和维护。 4. **上下文管理**:如何在上下文中添加、删除或修改对象,以及如何在模板中访问这些对象。 5. **工具引用**:Velocity...

    velocity中文

    - `#macro()`:定义宏,可重用的代码块。 - `#include()`:包含其他模板文件。 ### 3. Velocity上下文(Context) 上下文是Velocity中数据传输的核心,它负责在模板和Java后端之间传递信息。你可以向Context中添加...

Global site tag (gtag.js) - Google Analytics