pei*_*rix 11 velocity ternary-operator
有没有办法在Velocity中做三元运算符?这就是我想做的事情:
#set ($name = ($args.get(0) == "") ? "default" : $args.get(0))
Run Code Online (Sandbox Code Playgroud)
而不是粗糙的if-else
#if ($args.get(0) == "")
#set ($name = "default")
#else
#set ($name = $args.get(0))
#end
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
根据经验和阅读VTL参考,没有办法做到这一点.如果你有很多这样的作业,也许你可以考虑定义自己的velocimacro,试着避免重复if else.
例如,如果宏只打印一个字符串,则可以执行以下操作:
#set ($name = "#condOpt($args.get(0), "default")")
Run Code Online (Sandbox Code Playgroud)
宏调用周围的双引号很重要,因为这意味着解析了#set的RHS.