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

velocity的类型比较

    博客分类:
  • JAVA
阅读更多

Velocity的比较本来很简单,只是它在比较基本类型的时候,不仅比较值是否相等,还会比较类型是否相同。
拿个很简单的例子来说一下:

VelocityContext context = new VelocityContext();
long aLong = 1234L;
context.put("aLong", aLong);

 

在velocity页面里,进行一个比较:

#if($!aLong==1234)
    类型比较成功
#else
    比较失败
#end

 

页面肯定会打印出"比较失败".因为在velocity中获取的变量aLong是long类型,而数字1234是默认为int类型的。虽然值相等,可是类型不同。
在velocity里,好像没有方法进行基础类型之间的强制转换,如果你知道的话,请回帖告诉我们。
那现在问题摆在这里,我们想看到"类型比较成功",应该怎么做呢?
修改java代码,把变量aLong强制转换成int类型:context.put("aLong",(int)aLong).
不过我不是很赞成这种做法,从long强制转换成int类型,很容易造成精度丢失。
还有一种比较直接的方法,不修改java代码,直接修改vm文件:

#if("$!aLong"=="1234")
    类型比较成功
#else
    比较失败
#end

 

把两边都变成了String类型,就不会出现类型比较失败的情况了。
认识比较肤浅表面,还希望大家多指点一下。

5
2
分享到:
评论
2 楼 heydaytoheyong 2012-12-28  
不错,解决了我遇到问题!
1 楼 bo_83 2008-10-14  
哈哈哈 真有你的 不过确实好用

相关推荐

    velocity和freemarker的比较

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

    velocity的jar包

    2. **通用工具(General Tools)**:包括了一些通用的工具类,如NumberTool、ListTool等,用于处理数字、列表等常见数据类型。 3. **国际化(Internationalization)**:Velocity Tools 提供了I18N工具,支持多语言环境...

    让人蛋疼的velocity减法运算

    标题“让人蛋疼的velocity减法运算”暗示了在使用Velocity模板语言(VTL)时,作者遇到了关于减法操作的困扰。Velocity是Apache软件基金会的一个开源项目,它提供了一个简单且强大的模板引擎,用于将Java对象的数据...

    velocity为空判断

    Velocity是Apache软件基金会的一个开源项目,它是一个模板引擎,用于将HTML、XML或其他类型的文档与数据源结合起来,生成动态内容。在使用Velocity作为视图层处理数据时,常常需要进行空值判断,确保模板能够正确地...

    Velocity 和 FreeMarker区别

    - **Velocity**:是一个基于Java的模板引擎,它允许开发者使用简单的模板语言(Template Language, TL)来生成各种类型的文档。 - **FreeMarker**:同样是一种基于Java的模板引擎,它提供了一个强大的模板语言,支持...

    Velocity文档中文版

    Velocity 文档中文版 Velocity 是一个基于 Java 的模板引擎(template engine),它允许任何人仅仅简单的使用模板语言(template language)来引用由 Java 代码定义的对象。 Velocity 的能力远不止 web 站点开发这...

    struts2整合velocity

    - **配置Struts2的配置文件(struts.xml)**:在配置文件中声明Action类,并指定使用Velocity结果类型。例如: ```xml <result type="velocity">/WEB-INF/velocity/example.vm ``` 这表示当用户访问...

    velocity文档及其详细语法

    Velocity模板语言(VTL)是一种简单的脚本语言,它允许开发者在HTML或其他类型的文本文件中插入可执行的代码片段。VTL的主要目标是分离内容和表现,使得设计师可以专注于页面布局,而开发者则处理业务逻辑。 ### ...

    测试模板Velocity.docx

    在给定的文件信息中, Velocity 模板语言被用于生成一个文档模板,模板中包含了多个变量,如送审签日期、处理人、所在处室、电话、标题、文件类型等,这些变量将被替换为实际的数据以生成最终的文档。 Velocity ...

    SpringBoot Velocity 代码生成模板

    3. 编写代码生成器,解析数据库表结构,如表名、字段名、字段类型等。 4. 使用Velocity模板引擎,将解析出的信息填入模板,生成Java源码。 5. 编译生成的Java文件,添加到Spring Boot项目中。 在`demo`这个文件中,...

    Velocity_中文手册

    VTL使用“引用”(references)来嵌套动态内容,其中变量是最常见的引用类型。变量能够指向Java代码中定义的对象,或者从当前页面的VTL语句中获取值。在VTL中,每个语句都以“#”字符开始,这表示这是一个模板语言的...

    velocity学习资料.zip

    通过学习这些资料,你可以提高对Velocity的理解,从而更有效地利用它来构建动态网页或生成其他类型的文本输出。记得实践是检验真理的唯一标准,理论知识结合实际操作,会让你对Velocity的掌握更加牢固。

    velocity 中文开发文档

    - **变量 (Reference)**:变量是一种参考类型,在 Velocity 中用来引用 Java 代码中定义的对象或其他 VTL 语句的值。变量以 `$` 字符开头。 - **示例**:`<html><body>Hello $customer.Name!</body></html>`。在这个...

    Velocity介紹.ppt

    **VTL 引用类型** 1. **变量 (Variable References)**:例如 `$foo`,在设置后,可以用 `$foo` 访问其值。 2. **属性 (Property References)**:如 `$customer.Address`,这可以是 Hashtable 中的键值,或者是 ...

    Velocity快速指南

    Velocity支持三种类型的注释方式: 1. **单行注释**:以`##`开头,类似于C++中的`//`。 ```velocity ## 这是一行注释呀这是一行注释 ``` 2. **多行注释**:使用`#*`和`*#`标记来定义注释区域,适用于多行注释。...

    Velocity 模版

    VTL 是一种弱类型的脚本语言,它简洁且易于理解。 **3. Velocity 和 Java 的交互** 在 Java 应用程序中,我们通常通过 `VelocityContext` 类来设置上下文变量,并使用 `VelocityEngine` 来解析和渲染模板。以下是...

Global site tag (gtag.js) - Google Analytics