[英]Java velocity vm file #set use boolean variable
當我在 Apache 官方網站上找到速度項目指南時,我們不能通過#set
使用布爾變量,但是當我在我的項目中使用它時它也有效。
#set($isRight=true)
#if($isRight)
##execute
#end
#set($isRight=false)
#if($isRight)
##not execute
#end
我想知道#set
Boolean 變量是否支持velocity 以及我使用的方式是否合法。
在速度中,沒有明確的數據類型,因此不支持布爾變量。 但是由於速度是建立在 JAVA 平台上的,如果您指定一個兼容值,那么它可以在諸如“if”操作(在您的代碼中顯示的操作)之類的操作中為您提供預期的結果。 這是因為在 Java 中,在 if 表達式中需要布爾值,並且您提供的東西可以輕松轉換為布爾值。
如果您給出類似 #set($isRight=true1) 的內容,Java 引擎將在內部處理上面編寫的代碼,就像您在 'if' 表達式中指定的字符串一樣,該字符串無法轉換為布爾值,因此會拋出類型轉換異常(或 ClassCastException)。 除了“true”或“false”之外的任何值都會發生這種情況,這些值實際上是此處的字符串,但可以成功轉換為“if”表達式中預期的布爾值。
因此它不是布爾類型支持,而是幕后的 Java 實現使事情起作用。
尚未發布的 Velocity 2.0 確實支持此類測試。
同時,您可以求助於#if("isRight"=="true")...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.