博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Velocity用法记录
阅读量:5864 次
发布时间:2019-06-19

本文共 1968 字,大约阅读时间需要 6 分钟。

hot3.png

一、 问题:如何同时循环两个集合对象?

下面这种写法不行,$ages[这里只能是数字]

#set($names=["Bob", "Jack", "Lucy"])#set($ages=["12", "13", "11"])#foreach($name in $names)    $name    $ages[$velocityCount]#end

跟java一样即可,$map.get(这里是字符串)

#set($map={"Bob":"12", "Jack":"13", "Lucy":"11"})#foreach($m in $map.keySet)    $m    $map.get($m)#end#foreach($m in $map.entrySet)    $m.key    $m.value#end

二、 问题:velocity页面和后台数据类型不一致,导致调用后台方法失败

当后台定义的方法需要的参数类型为long,但是velocity页面定义的变量为int类型,就无法调用这个方法了。

其实很简单的,就跟java方法一样

#set($num = 1)$num.getClass() ##获取当前对象的类型$num.longValue() ##转换成对应的类型$num.byteValue()$num.toString()

又有人问了,如果是String类型的参数,怎么转换成int和long类型呢? String没有longValue(),没有intValue(),那就变通一下,如下:

#set($age = "18")$age.getClass() ##String类型#set($int = 0)##set一个Integer类型变量$int.parseInt($age) ##Integer是有parseInt()方法的$int.parseInt($age).getClass() ##这里是Integer类型了#set($long = $int.longValue()) ##没法直接set一个Long类型变量,可由Integer类型变量来变$long.parseLong($age)$long.parseLong($age).getClass() ##这里是Long类型了

如果嫌这样麻烦,完全可以定义一个ToolBox工具,来完成这些类型变量之间的转换

$TypeParseTool.parseStringToInteger("123")$TypeParseTool.parseStringToLong("123456")$TypeParseTool.parseNumToString(123)

三、break和stop指令

#foreach($a in [1..3])	#if($a == 2)	#break	#end	$a#end#foreach($b in [10..12])	#if($b == 11)	#stop	#end	$b#end这里是主体内容

结果如下:

1 10

和java中对应关键字一样,break:跳出当前循环,stop:停止当前页面的所有后续内容,可以做权限控制。 你肯定会问,那有continue指令么?velocity engine本身是没有continue指令的,可查看。如果想,那就自定义指令吧。

四、双引号和单引号的区别

#set($a = "hello")#set($b = $a+" world")#set($c = "$a world")#set($d = '$a world')$b$c$d

结果如下:

hello world hello world $a world

没错,双引号会将解析变量,单引号则会保持字符本身。

五、evaluate指令

#set($students=["lucy", "jack", "bob", "emmy"])#set($lucy_data = "165cm")#set($jack_data = "182cm")#set($bob_data = "175cm")#set($emmy_data = "176cm")#foreach($student in $students)    #set($var = "$${student}_data")    $student - #evaluate($var)#end

结果如下:

lucy - 165cm jack - 182cm bob - 175cm emmy - 176cm

作用就是根据变量名字符串,如”$bob_data“,”评估“出其实际值。有时候可以省很多事儿。

转载于:https://my.oschina.net/ijustdoit/blog/540986

你可能感兴趣的文章
如何看待一本图书
查看>>
oracle参数列表
查看>>
Wordpress3.2去除url中的category(不用插件实现)
查看>>
macOS Sierra 代码显示未来 Mac 将搭载 ARM 芯片
查看>>
Linux 中如何通过命令行访问 Dropbox
查看>>
开发进度——4
查看>>
JS里验证信息
查看>>
Akka actor tell, ask 函数的实现
查看>>
windows10 chrome 调试 ios safari 方法
查看>>
Hello , Ruby!
查看>>
Netty 4.1.35.Final 发布,经典开源 Java 网络服务框架
查看>>
详解Microsoft.AspNetCore.CookiePolicy
查看>>
SCDPM2012 R2实战一:基于SQL 2008 R2集群的SCDPM2012 R2的安装
查看>>
SQL SERVER中字段类型与C#数据类型的对应关系
查看>>
Linux lsof命令详解
查看>>
SVG path
查看>>
js判断checkbox是否选中
查看>>
多系统盘挂载
查看>>
MySQL函数怎么加锁_MYSQL 函数调用导致自动生成共享锁问题
查看>>
python httpstr find_Python string.rfind方法代碼示例
查看>>