在串联语句中增加值的速度
Velocity adding values with in concatenation statement
抱歉,如果之前有人问过这个问题,但我找不到直接的答案。
我有以下代码,该应用程序是第三方,因此传入的 $supernet 以字符串形式提供。所以我想做的是获取一个 IP 地址,然后对其进行操作以创建基于模板的子网列表。
#set ($Supernet = "10.10.10.10")
#set ($octs = $Supernet.split("\."))
#set ($netmgmt[2] = "$octs[0].$octs[1].$octs[2].$octs[2]+1")
$netmgmt
但这正如我预期的那样给出了结果“10.10.10.10+1”
我发现我可以用手写的方式做到这一点
- 将 $oct[2] 转换为整数并存储在变量中
- 创建一个临时变量并存储转换后的$oct[2] + 1
的结果
- 然后用它来创建字符串
喜欢
$Integer = $convert.toInteger($oct[2])
#set ($newoct = $Integer + 1)
#set ($netmgmt[2] = "$octs[0].$octs[1].$octs[2].$newoct")
但我有很多这些要创建,这会变得冗长和混乱。
所以我想知道我是否可以编写#set ($octs = $Supernet.split(".")) 来存储为整数。老实说,仅仅尝试将每个数组值直接转换为 int 似乎并不像我在网上找到的那样工作。我预计下面会导致“$oct1 = 10”,但事实并非如此?
#set ($Supernet = "10.10.10.10")
#set ($octs = $Supernet.split("\."))
#set ($oct1 = $convert.toInteger($oct[0])
Velocity 新手,感谢任何帮助。
您应该检查您使用的是哪个版本的 Velocity-Tools,以及哪些工具在提供的上下文中可用。
例如,自 Velocity-Tools 3.1 以来,$convert.toInteger()
已被弃用,取而代之的是 $math.toInteger()
。您可以通过显示 $convert
和 $math
.
来检查上下文中是否存在这些工具
以下代码适用于 Velocity 1.7 + Tools 2.0,只要使用 Velocity 2.X + Tools 3.x:
#set ($Supernet = "10.10.10.10")
#set ($octs = $Supernet.split('\.'))
#set ($last = $math.toInteger($octs[2]) - 1)
#set ($ip = "${octs[0]}.${octs[1]}.${octs[2]}.$last")
$ip
抱歉,如果之前有人问过这个问题,但我找不到直接的答案。
我有以下代码,该应用程序是第三方,因此传入的 $supernet 以字符串形式提供。所以我想做的是获取一个 IP 地址,然后对其进行操作以创建基于模板的子网列表。
#set ($Supernet = "10.10.10.10")
#set ($octs = $Supernet.split("\."))
#set ($netmgmt[2] = "$octs[0].$octs[1].$octs[2].$octs[2]+1")
$netmgmt
但这正如我预期的那样给出了结果“10.10.10.10+1”
我发现我可以用手写的方式做到这一点
- 将 $oct[2] 转换为整数并存储在变量中
- 创建一个临时变量并存储转换后的$oct[2] + 1 的结果
- 然后用它来创建字符串
喜欢
$Integer = $convert.toInteger($oct[2])
#set ($newoct = $Integer + 1)
#set ($netmgmt[2] = "$octs[0].$octs[1].$octs[2].$newoct")
但我有很多这些要创建,这会变得冗长和混乱。
所以我想知道我是否可以编写#set ($octs = $Supernet.split(".")) 来存储为整数。老实说,仅仅尝试将每个数组值直接转换为 int 似乎并不像我在网上找到的那样工作。我预计下面会导致“$oct1 = 10”,但事实并非如此?
#set ($Supernet = "10.10.10.10")
#set ($octs = $Supernet.split("\."))
#set ($oct1 = $convert.toInteger($oct[0])
Velocity 新手,感谢任何帮助。
您应该检查您使用的是哪个版本的 Velocity-Tools,以及哪些工具在提供的上下文中可用。
例如,自 Velocity-Tools 3.1 以来,$convert.toInteger()
已被弃用,取而代之的是 $math.toInteger()
。您可以通过显示 $convert
和 $math
.
以下代码适用于 Velocity 1.7 + Tools 2.0,只要使用 Velocity 2.X + Tools 3.x:
#set ($Supernet = "10.10.10.10")
#set ($octs = $Supernet.split('\.'))
#set ($last = $math.toInteger($octs[2]) - 1)
#set ($ip = "${octs[0]}.${octs[1]}.${octs[2]}.$last")
$ip