`

(一) velocity语法与配置项

 
阅读更多

一、Velocity Template Language (VTL)介绍

   1、#set

        用来定义页面内使用的变量。例如:

        

#set( $monkey = $bill ) ## variable reference
#set( $monkey.Friend = "monica" ) ## string literal
#set( $monkey.Blame = $whitehouse.Leak ) ## property reference
#set( $monkey.Plan = $spindoctor.weave($web) ) ## method reference
#set( $monkey.Number = 123 ) ##number literal
#set( $monkey.Say = ["Not", $my, "fault"] ) ## ArrayList
#set( $monkey.Map = {"banana" : "good", "roast beef" : "bad"}) ## Map

   2、comment

 

    注释语法为# ,#* *#,#**  *#

 

   3、References

   References有三类,分别是variables, properties and methods,分别举例如下:

   variables:

 

$foo

    推荐写法 $!foo ,值不存在的时候,会用空字符串替代 

 

 

   properties :

$customer.Address

 

 

   methods:

   

$customer.getAddress()
$purchase.getTotal()
$page.setTitle( "My Home Page" )
$person.setAttributes( ["Strange", "Weird", "Excited"] )

 

 

   4、If / ElseIf / Else

   逻辑分支判断,例如

   

#if( $foo < 10 )
    <strong>Go North</strong>
#elseif( $foo == 10 )
    <strong>Go East</strong>
#elseif( $bar == 6 )
    <strong>Go South</strong>
#else
    <strong>Go West</strong>
#end    

 

 

 5、#foreach

  一下是该标签的常用代码实例片段,

 

一般的例子
 <ul>
#foreach( $product in $allProducts )
    <li>$product</li>
#end
</ul

Map循环的例子
<ul>
#foreach( $key in $allProducts.keySet() )
    <li>Key: $key -> Value: $allProducts.get($key)</li>
#end
</ul>

通过$foreach.count获取循环计数器,类似的还有($foreach.index,$foreach.last, $foreach.first等)
<table>
#foreach( $customer in $customerList )
    <tr><td>$foreach.count</td><td>$customer.Name</td></tr>
#end
</table>

通过$foreach.hasNext来判断是否是最后一次循环
#foreach( $customer in $customerList )
    $customer.Name#if( $foreach.hasNext ),#end
#end

通过#break来中断循环
## list first 5 customers only
#foreach( $customer in $customerList )
    #if( $foreach.count > 5 )
        #break
    #end
    $customer.Name
#end

 

6、#include

 该标签用来引入一个本地文件,引入的时候是静态引入,不会被Velocity Engine进行render.并且基于安全原因,被引入文件最好被放在TEMPLATE_ROOT下

   简单例子如下:

  

#include( "one.txt" )

如果有多个文件需要引入,可以用逗号分隔
#include( "one.gif","two.txt","three.htm" )

同时引入两个文件,其中一个文件用变量来指定路径以及文件名
#include( "greetings.txt", $seasonalstock )

 

 

   7、#parse

   对比#include,该标签可以包含VTL,可以被Velocity Engine进行render。但是只接受一个参数

 

  8、#stop

   该标签后面的html将不进行解析和展现

 

  9、#evaluate

   对字符串进行render,感觉用处不大

 

 10、#define

   相当于一个“函数”,定义一个代码块,可在后续进行引用,例如:

  

 #define($myfunc) $who,hello!#end

    #set($who="kongxuan")
    $myfunc

  运行结果:

  kongxuan,hello!

 

 11、#macro

 宏调用,是一个非常重要的指令。用来抽取页面中重复的VTL代码片段。

 

 

    #macro( tablerows $color $somelist )
        #foreach( $something in $somelist )
            <tr><td bgcolor=$color>$something</td></tr>
        #end
    #end

    #set( $greatlakes = ["Superior","Michigan","Huron","Erie","Ontario"] )

    #set( $color = "blue" )
    <table>
        #tablerows( $color $greatlakes )
    </table>

  注意:宏可以写在文件VM_global_library.vm里面,resource根目录下,且需要新增配置项:

  在velocity.properties中新增配置项velocimacro.library=VM_global_library.vm

 

二、velocity配置项

 

(待续)

 

 

 

 

 

 

 

 

 

    

      

 

分享到:
评论

相关推荐

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

    Velocity的主要优点在于其简单易用和高度可扩展性,使得开发者能够将业务逻辑与表现层分离,提高代码的可读性和维护性。以下是关于这三个JAR文件的详细知识点: 1. **velocity-1.5.jar**: 这是Velocity的1.5版本...

    spring mvc与velocity整合

    总的来说,Spring MVC与Velocity的整合使得开发者可以利用Spring MVC的强大功能来处理业务逻辑,同时利用Velocity的简洁模板语法来设计前端页面,两者结合提供了高效且易于维护的Web应用解决方案。

    myeclipse的velocity插件

    Velocity 是一个基于 Java 的模板引擎,它允许开发者将静态文本与 Java 代码相分离,从而使得网页设计更加简洁、易维护。在 Web 开发领域,Velocity 被广泛用于生成动态内容,尤其在 Apache Struts 和 Spring MVC 等...

    velocity 测试代码

    配置项包括模板路径、编码方式、缓存策略等。正确配置能提升性能并确保模板引擎正常工作。 7. **异常处理**:Velocity 允许自定义错误处理策略,当模板中出现错误时,可以捕获并以适当的方式处理,避免显示给用户。...

    Myeclipse手动安装Velocity编辑器插件

    7. **设置插件首选项**:在MyEclipse中,可以通过“Window” &gt; “Preferences” &gt; “MyEclipse” &gt; “Editors” &gt; “Velocity Editor”来调整插件的配置,如颜色主题、快捷键等,以适应个人习惯。 8. **优化开发**...

    velocity 需要的jar

    在Java开发中,Velocity是一个强大的模板引擎,它允许开发者将静态文本与动态内容结合在一起,生成最终的输出。Velocity被广泛应用于Web应用、邮件生成、报告生成等多种场景。要使用Velocity,你需要确保拥有正确的...

    Velocity在eclipse和Editplus下的开发插件

    1. 首先,你需要下载Velocity的语法规则文件,这通常是一个名为“velocity.xml”的文件,包含Velocity模板的语法定义。 2. 在EditPlus中,选择“Tools”菜单,然后点击“Preferences”。 3. 在首选项设置窗口中,...

    SpringBoot与velocity的结合的示例代码

    这些配置项主要用于设置Velocity的字符编码、输入编码、输出编码、模板加载路径和模板后缀等。 四、使用Velocity模板 在Spring Boot中,使用Velocity模板需要在Controller中返回视图名称,然后由...

    Velocity模板引擎 v2.2.0.zip

    - 初始化Velocity引擎,设置配置项如模板路径。 - 创建Velocity上下文,添加数据。 - 渲染模板,生成最终输出。 6. **最佳实践** - 尽量保持模板简洁,避免过多的逻辑处理。 - 使用宏和自定义指令来封装复杂...

    velocity学习资料

    4. **VelocityEngine**:这是 Velocity 的主入口点,负责加载并解析模板,以及管理其他配置项。你可以通过 VelocityEngine 对象初始化 Velocity,并设置相关的属性,如模板路径、缓存策略等。 5. **MVC 模式**:...

    velocity servlet 开发

    Velocity作为一个开源的Java模板引擎,它将业务逻辑与表现层分离,提高了代码的可维护性和重用性。 ### 1. Velocity 模板引擎简介 Velocity 模板引擎是Apache软件基金会的一个项目,它的设计目标是提供一种简单但...

    java eclipse

    下面将详细解析在Struts配置文件中出现的一些关键配置项及其作用。 ### 1. Struts配置文件详解 #### 1.1 `struts.enable.DynamicMethodInvocation` 此配置项用于控制Struts是否启用动态方法调用(Dynamic Method ...

    volecity初识

    例如,`runtime.log.error.stacktrace`配置项控制是否打印错误堆栈信息。 7. **最佳实践** - 分离模板文件和Java代码,保持代码整洁。 - 使用宏库(Macro Library)组织和重用宏,提高代码复用性。 - 避免在模板...

    Struts2\constant应用

    本文将详细解析给定的Struts2配置项,并探讨其作用与应用场景。 #### 二、Struts2常量配置项详解 ##### 1. struts.i18n.encoding **作用:** 指定Web应用的默认编码集,等同于调用`HttpServletRequest`的`set...

    eclipse核心配置1

    - **首选项设置**:包括编辑器的颜色主题、代码提示、自动完成、语法检查等。 - **构建自动化**:配置构建过程,如Maven或Gradle的集成,实现自动化构建和部署。 - **调试配置**:设置断点,调试选项,以及远程调试...

    springJavaEmail:Spring集成Velocity 发送Email

    在模板中,可以使用Velocity语法定义动态内容,例如 `${recipientName}` 和 `${messageBody}`。 4. 编写邮件发送逻辑:创建一个服务类,注入`JavaMailSender`和`VelocityEngine`。在该服务类中,使用`...

    mybatis-plus代码生成器配置文档

    具体到配置项,例如: - dbType(数据库类型):配置文件中内置了常用的数据库类型,如MySQL、PostgreSQL等,开发者需要指定使用的数据库类型。 - schemaName(数据库schema名称):如果数据库存在schema,可以指定...

    java插件配置代码生成器

    在Java开发中,尤其是涉及到插件化架构时,编写和维护配置代码是一项繁琐的任务。此代码生成器简化了这个过程,通过自定义模板或预设规则,能够快速生成符合规范的配置代码,帮助开发者专注于核心业务逻辑。 首先,...

    sakai样式修改手册

    具体操作可参考链接:http://liuyf.iteye.com/blog/645759,这通常涉及修改与Velocity相关的配置项。 5. **JSF配置**:Sakai可能还使用JavaServer Faces(JSF)技术,`faces-config.xml`是JSF应用的核心配置文件。...

    RTFTemplate的初步使用

    可能需要设置一些配置项,如错误处理策略。 4. **渲染RTF文档**:调用RTFTemplate的`generate`方法,将模板和数据合并,生成最终的RTF报告。 5. **保存或展示结果**:生成的RTF文档可以保存到本地文件系统,也可以...

Global site tag (gtag.js) - Google Analytics