抱歉,如果之前有人問過這個問題,但我找不到直接的答案。
我有以下代碼,該應用程式是第三方,因此傳入的 $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 的新手,任何幫助表示贊賞。
uj5u.com熱心網友回復:
您應該檢查您使用的是哪個版本的 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/381633.html
上一篇:如何組合字串并制作它的陣列?
