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

Velocity学习笔记7——引用的不同形式

阅读更多
正式的引用符号:
在以前的例子中使用的都是引用的简写形式,引用还有一种正式的形式,如下面的例子所示:
${mudSlinger}
${customer.Address}
${purchase.getTotal()}
几乎在所有的情况下都可以使用引用的简写形式,但是有些时候还是必须使用正式形式。
假设你创建了一个句子,其中包含引用$vice作为一个名词基本词根,目的是允许用户选择这个基本词来创建下面的语句中的一个”Jack is a pyromaniac”或者”Jacd is a kleptomaniac”。这里红色的地方是$vice引用将要取代的部分。在这里使用简写形式是不恰当的。如果写成简写形式,就是下面的样子:
Jack is a $vicemaniac.
这样就很不明确, Velocity引擎会认为$vicemaniac是你要使用的引用,而不是$vice。使用正式形式就会避免这种情况:
Jack is a ${vice}maniac.
Now Velocity knows that $vice, not $vicemaniac, is the reference. Formal notation is often useful when references are directly adjacent to text in a template.
现在Velocity引擎就知道你使用的引用是$vice,而不是$vicemaniac。正式形式通常用在模板中引用后面直接跟文本的情况下。
 
安静的引用形式(Quiet Reference Notation
当Velocity引擎遇到一个没有定义的引用的时候,它通常的做法是直接将这个引用输出。例如下面的句子出现在一个VTL模板中:
<input type="text" name="email" value="$email"/>
如果当这段代码初始化的时候,变量$email还没有赋值,那么Velocity引擎会输出:
<input type="text" name="email" value="$email"/>
也就是说对$email没有任何处理,直接原样输出。
使用安静的引用形式,可以避免Velocity引擎的这种通常的处理方法。安静的引用形式是:$!eamil。这样上面的例子就变成了:
<input type="text" name="email" value="$!email"/>
现在,当这段代码初始化的时候,如果$email还是没有值,那么输出时就会用一个空字符串来代替$email,这时上面的例子的输出就是:
input type="text" name="email" value=""/>
正式形式和安静形式可以一起使用,如下:
<input type="text" name="email" value="$!{email}"/>
分享到:
评论

相关推荐

    velocity学习笔记

    ### Velocity学习笔记精要 **一、Velocity简介与特点** Velocity是一种基于Java的模板引擎,用于将静态数据和动态内容结合在一起,生成最终的HTML、XML或其他格式的文档。其最大的特点是性能高、易于理解和使用,...

    velocity学习笔记与struts2整合

    7. velocity-tools-view-1.4.jar - 用于视图处理的工具包。 8. xwork-2.0.4.jar - Struts2的核心库之一。 9. ognl-2.6.11.jar - Object-Graph Navigation Language,Struts2的表达式语言库。 10. struts2-core-2.0....

    Velocity语法笔记

    ### Velocity 语法笔记 #### 一、Velocity 概述与基本用法 Velocity 是一个基于 Java 的模板引擎,主要用于 Web 应用程序中生成动态页面。它提供了丰富的语法支持,使得开发者可以更轻松地处理数据并将其转换为...

    velocity实践——初识velocity

    NULL 博文链接:https://twb.iteye.com/blog/265761

    velocity笔记

    - **变量(Variables)**:变量是引用的一种形式,用于存储值。在VTL中,变量以`$`开头,如`$a = "Velocity"`,其中`$a`是变量名,"Velocity"是变量的值。 - **声明(Statements)**:VTL的声明以`#`开头,比如`#set`...

    velocity学习资料.zip

    在这个“velocity学习资料.zip”压缩包中,可能包含了关于Velocity的基本概念、语法、最佳实践以及一些示例代码,帮助初学者或有经验的开发者更好地理解和应用Velocity。 Velocity的工作原理基于MVC(Model-View-...

    Velocity学习Web项目

    【Velocity学习Web项目】 Velocity是Apache软件基金会的一个开源项目,它是一个基于Java的模板引擎,用于生成动态网页内容。在J2EE环境中,Velocity经常与Struts等MVC框架结合使用,以提供更加灵活和高效的视图层...

    velocity的学习资料

    在这个"velocity的学习资料"压缩包中,我们很可能会找到关于Velocity的基本概念、语法、最佳实践以及如何将其整合到Java Web项目中的相关信息。 1. **Velocity基本概念** - **模板语言**: Velocity使用简单的文本...

    JAVA的Velocity语法学习

    5. 注释:Velocity的注释有两种形式,行内注释`#comment`和块注释`##begin comment...##end comment`。 6. 引用资源:Velocity可以使用`#resource`指令加载外部资源,如模板文件。 ** Velocity模板引擎的应用 ** ...

    Maven 整合 Spring mvc + Mybatis + Velocity 的实例

    通过这个实例,我们可以看到Maven、Spring MVC、Mybatis和Velocity是如何协同工作的,它们各自承担不同的职责,共同构建了一个功能完善的Web应用。这种组合提供了强大的功能,同时保持了良好的代码结构和可维护性。...

    Velocity学习指南(中文版).rar

    Velocity用户指南旨在帮助页面设计者和内容提供者了解Velocity和其简单而又强大的脚本语言(Velocity Template Language (VTL))。本指南中有很多示例展示了用Velocity来讲动态内容嵌入到网站之中,但是所有的VTL ...

    Velocity框架学习教程

    ### Velocity框架学习教程知识点 #### 一、Velocity框架概述 - **定义**:Velocity是一款开源的Java模板引擎,它的核心作用在于将业务逻辑与展示层相分离,使得开发者能够更加专注于各自的任务。对于Web开发而言,...

    Velocity学习资料

    这与JSP(JavaServer Pages)有所不同,JSP虽然也实现了视图和控制的分离,但仍然允许在页面中嵌入Java代码,而Velocity完全避免了这种混合。 在Velocity中,模板语言称为Velocity Template Language (VTL),它是一...

    velocity插件与学习文档

    1. **基础语法**: Velocity模板语言包括变量引用(如`${variable}`)、控制结构(如`#if`, `#else`, `#foreach`等)、逻辑运算符和比较操作。 2. **上下文对象**: 模板中的数据通常来自Java对象,这些对象被称为上...

    velocity和freemarker的比较

    标题“velocity和freemarker的比较”涉及到的是两个在Java Web开发中常用的模板引擎——Velocity和FreeMarker。它们都是用于将静态模板与动态数据结合,生成HTML或其他类型的文本输出,常用于MVC(模型-视图-控制器...

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

    Velocity是Apache软件基金会的一个开源项目,它是一款强大的模板引擎,主要用于生成动态Web内容。 Velocity的主要优点在于其简单易用和高度可扩展性,使得开发者能够将业务逻辑与表现层分离,提高代码的可读性和维护...

Global site tag (gtag.js) - Google Analytics